/** One worker entry from `.lisa/worker-config.json`. */
export interface WorkerEpochAgentRecord {
    id?: unknown;
    host?: unknown;
    version?: unknown;
    model?: unknown;
    modelId?: unknown;
    qualificationEvidence?: unknown;
    evidence?: unknown;
    qualifiedAt?: unknown;
    recordedAt?: unknown;
}
/** Supported top-level worker epoch record shapes. */
export interface WorkerEpochRecord {
    agents?: unknown;
    workers?: unknown;
}
/** Current runtime identity used for epoch comparison. */
export interface RuntimeWorkerSignature {
    host: string;
    model: string;
    version: string;
}
/**
 * The consolidated journey-evidence resolution for the current worker, shared by
 * the epoch-drift path and the readiness execution/proof dimension so both read
 * one source of truth.
 */
export interface WorkerJourneyEvidence {
    /** Absolute path to `.lisa/worker-config.json`. */
    readonly recordPath: string;
    /** Whether `.lisa/worker-config.json` exists on disk. */
    readonly recordExists: boolean;
    /** A parse error message when the record is present but not valid JSON. */
    readonly parseError: string | null;
    /** The current runtime worker signature (host/model/version). */
    readonly signature: RuntimeWorkerSignature;
    /** The recorded worker entry matching the current host, if any. */
    readonly matched: WorkerEpochAgentRecord | undefined;
    /** The recorded qualification-evidence pointer, or null when absent. */
    readonly evidence: string | null;
    /** Human-readable model/version drift fragments (empty when in sync). */
    readonly drift: readonly string[];
    /** #1742's scaffolding-subtraction candidate count (surfaced, never deleted). */
    readonly subtractionCount: number;
}
/**
 * Resolve the shared journey evidence for the current worker: read the record,
 * find the entry for this host, and compute drift, evidence, and the
 * subtraction-candidate count in one pass. This is the single journey runner
 * both #1742's epoch-drift path and RRR-6's readiness dimension consume — no
 * second harness. It never throws: an unreadable record degrades to
 * `parseError`, and a missing record to `recordExists: false`.
 * @param targetPath - Project path to inspect
 * @returns The consolidated worker journey evidence
 */
export declare function resolveWorkerJourneyEvidence(targetPath: string): Promise<WorkerJourneyEvidence>;
/**
 * Infer a stable worker signature from explicit Lisa variables first, falling
 * back to `LISA_REMOTE_AGENT` (set by the remote-agent bootstrap for Cursor,
 * Copilot, OpenCode, and Antigravity) and then Codex/Claude-specific markers.
 * @returns Current runtime signature
 */
export declare function currentRuntimeWorkerSignature(): RuntimeWorkerSignature;
/**
 * Normalize object- and array-shaped worker records into one array.
 * @param record - Parsed worker epoch record
 * @returns Normalized worker entries
 */
export declare function normalizeWorkerAgents(record: WorkerEpochRecord): WorkerEpochAgentRecord[];
/**
 * Find the recorded worker entry whose host matches the current signature.
 * @param agents - Normalized worker entries
 * @param signature - Current runtime worker signature
 * @returns The matching worker entry, or undefined
 */
export declare function findWorkerRecordForHost(agents: readonly WorkerEpochAgentRecord[], signature: RuntimeWorkerSignature): WorkerEpochAgentRecord | undefined;
/**
 * Compute the model/version drift fragments between a recorded worker entry and
 * the current runtime signature. An empty array means the epoch is in sync.
 * @param record - Recorded worker entry for the current host
 * @param signature - Current runtime worker signature
 * @returns Human-readable drift fragments
 */
export declare function computeWorkerDrift(record: WorkerEpochAgentRecord, signature: RuntimeWorkerSignature): string[];
/**
 * Resolve the recorded qualification-evidence pointer for a worker entry.
 * @param record - Recorded worker entry
 * @returns Trimmed evidence pointer, or null when absent
 */
export declare function resolveRecordedEvidence(record: WorkerEpochAgentRecord): string | null;
/**
 * Return a human-readable drift fragment for one worker field.
 * @param name - Field name
 * @param recorded - Recorded value
 * @param current - Current value
 * @returns Drift fragment, or null when unchanged/unobservable
 */
export declare function compareWorkerField(name: string, recorded: string | null, current: string): string | null;
/**
 * Count local rules/skills whose rationale mentions worker-specific workarounds.
 * @param targetPath - Project path to scan
 * @returns Number of candidate files
 */
export declare function countWorkerWorkaroundCandidates(targetPath: string): Promise<number>;
/**
 * Narrow unknown JSON values to plain records.
 * @param value - Value to inspect
 * @returns True for plain object records
 */
export declare function isRecord(value: unknown): value is Record<string, unknown>;
/**
 * Normalize a possibly empty string field.
 * @param value - Value to normalize
 * @returns Trimmed string or null
 */
export declare function stringField(value: unknown): string | null;
//# sourceMappingURL=doctor-worker-journey.d.ts.map