import { z } from 'zod';
import { LlmClient } from '../adapters/llm.js';
import type { SymbolRecord } from '../types.js';
declare const ConfirmationSchema: z.ZodObject<{
    same_concept: z.ZodBoolean;
    confidence: z.ZodNumber;
    reason: z.ZodString;
}, z.core.$strip>;
export type ConfirmationResult = z.infer<typeof ConfirmationSchema>;
export declare class LlmConfirmer {
    private llm;
    private cache;
    constructor(llm?: LlmClient);
    confirmSameConcept(a: SymbolRecord, b: SymbolRecord, 
    /**
     * Project conventions text (CLAUDE.md / AGENTS.md / etc., already
     * concatenated and truncated). When present, the verdict weighs
     * project-stated rules — e.g. "three similar lines is better than
     * premature abstraction" turns this into `same_concept: false` even
     * on a tight skeleton match.
     */
    projectConventions?: string): Promise<ConfirmationResult | null>;
}
export {};
//# sourceMappingURL=llm-confirmer.d.ts.map