import type { MachineAdvisoryState } from "./machine-advisory.js";
export type MachineParityStatus = "covered" | "partial" | "missing" | "optional";
export interface MachineParityItem {
    id: string;
    label: string;
    scope: "repo-local" | "machine-global";
    category: "runtime" | "repo-intelligence" | "toolchain" | "config" | "optimization" | "telemetry" | "assistant-runtime" | "workflow";
    status: MachineParityStatus;
    detail: string;
    evidence: string[];
    helperCommand?: string | null;
}
export interface MachineParityHelper {
    id: string;
    label: string;
    command: string;
    reason: string;
}
export interface MachineParityState {
    artifactType: "kiwi-control/machine-parity";
    version: 1;
    updatedAt: string;
    overallStatus: "ready" | "needs-work";
    boundaryNote: string;
    summary: {
        covered: number;
        partial: number;
        missing: number;
        optional: number;
        total: number;
    };
    repoLocalCapabilities: MachineParityItem[];
    machineGlobalCapabilities: MachineParityItem[];
    helpers: MachineParityHelper[];
}
export interface MachineParitySummaryState {
    available: true;
    updatedAt: string;
    overallStatus: "ready" | "needs-work";
    boundaryNote: string;
    repoLocalCovered: number;
    repoLocalTotal: number;
    machineGlobal: {
        covered: number;
        partial: number;
        missing: number;
        optional: number;
        total: number;
    };
    topMissing: Array<{
        id: string;
        label: string;
        helperCommand: string | null;
    }>;
    topPartial: Array<{
        id: string;
        label: string;
        helperCommand: string | null;
    }>;
}
export declare function buildMachineParityState(advisory: MachineAdvisoryState): MachineParityState;
export declare function summarizeMachineParity(parity: MachineParityState): MachineParitySummaryState;
//# sourceMappingURL=machine-parity.d.ts.map