import type { RagStore } from '../ragStore';
import type { CodebaseRegistry } from './codebaseRegistry';
import type { CodeLookupLedger } from './codeLookupLedger';
export type PatchStatus = 'verified' | 'sketch' | 'unverified';
export interface PatchProposalResponse {
    patchProposalId: string;
    patchStatus: PatchStatus;
    diff?: string;
    patchSketch?: string;
    rationale: string;
    confidence: 'low' | 'medium' | 'high';
    targetFiles: Array<{
        codebaseId: string;
        path: string;
        lineRange?: {
            start: number;
            end: number;
        };
    }>;
    warnings: string[];
    unsupportedReason?: string;
    applyCheck?: {
        ran: boolean;
        passed: boolean;
        workdir?: string;
        error?: string;
    };
}
export interface ProposePatchInput {
    contextChunkIds: string[];
    problem: string;
    proposedDiff?: string;
    patchSketch?: string;
    turn?: number;
}
export declare class PatchProposer {
    private readonly store;
    private readonly registry;
    private readonly ledger?;
    constructor(store: RagStore, registry: CodebaseRegistry, ledger?: CodeLookupLedger | undefined);
    propose(input: ProposePatchInput): PatchProposalResponse;
    private record;
}
//# sourceMappingURL=patchProposer.d.ts.map