export type BuiltInOutputValidationProfile = 'oracle-prime' | 'factual-answer' | 'coding-answer' | 'tool-result-summary';
export type OutputValidationProfile = BuiltInOutputValidationProfile | string;
export type OutputValidationStatus = 'pass' | 'warn' | 'fail';
export interface OutputValidationProfileInfo {
    profile: string;
    label: string;
    description: string;
}
export interface CustomOutputValidationCheck {
    code: string;
    severity?: OutputValidationStatus;
    message: string;
    requiresAny?: string[];
    requiresAll?: string[];
    forbidsAny?: string[];
    minLength?: number;
    maxLength?: number;
    scorePenalty?: number;
}
export interface CustomOutputValidationProfile extends OutputValidationProfileInfo {
    instructions: string;
    checks: CustomOutputValidationCheck[];
    warnBelowScore?: number;
    failBelowScore?: number;
}
export interface CustomOutputValidationProfileError {
    path: string;
    message: string;
}
export interface CustomOutputValidationProfileValidation {
    profiles: CustomOutputValidationProfile[];
    errors: CustomOutputValidationProfileError[];
}
export interface OutputValidationFinding {
    code: string;
    severity: OutputValidationStatus;
    message: string;
    scorePenalty?: number;
    suggestion?: string;
}
export interface OutputValidationResult {
    profile: OutputValidationProfile;
    status: OutputValidationStatus;
    score: number;
    findings: OutputValidationFinding[];
    missingSections: string[];
}
export interface OutputValidationProfileTemplate extends CustomOutputValidationProfile {
    examples: {
        good: string;
        bad: string;
    };
}
export declare const OUTPUT_VALIDATION_PROFILES: OutputValidationProfileInfo[];
export declare const OUTPUT_VALIDATION_PROFILE_TEMPLATES: OutputValidationProfileTemplate[];
export interface OutputValidationProfileSuggestion {
    profile: BuiltInOutputValidationProfile;
    matched: boolean;
}
/**
 * Optional hints the caller can pass to disambiguate profile selection when
 * upstream classifiers (e.g. the mode classifier) already know the user's
 * intent. Keeps the suggester from re-deriving intent from a regex table that
 * is easy to fool with stray file paths or language keywords inside an
 * otherwise-analytical prompt.
 */
export interface OutputValidationProfileSuggestionOptions {
    /**
     * Intent hint from a higher-level classifier. When set to `'research'` or
     * `'maintain'` the suggester routes to the analytical profile regardless of
     * incidental code/factual keywords appearing in the prompt body.
     */
    modeHint?: 'chat' | 'build' | 'operate' | 'automate' | 'research' | 'maintain';
}
export declare function describeOutputValidationProfileSuggestion(input: string, fallback?: OutputValidationProfile, options?: OutputValidationProfileSuggestionOptions): OutputValidationProfileSuggestion;
export declare function suggestOutputValidationProfile(input: string, fallback?: OutputValidationProfile, options?: OutputValidationProfileSuggestionOptions): BuiltInOutputValidationProfile;
export declare function validateOutput(content: string, profile?: OutputValidationProfile, customProfiles?: CustomOutputValidationProfile[]): OutputValidationResult;
export declare function parseOutputValidationProfile(value: unknown, customProfiles?: CustomOutputValidationProfile[]): OutputValidationProfile | undefined;
export declare function getOutputValidationInstructions(profile: OutputValidationProfile, customProfiles?: CustomOutputValidationProfile[]): string;
export declare function withOutputValidationInstructions(systemPrompt: string, profile: OutputValidationProfile, customProfiles?: CustomOutputValidationProfile[]): string;
export declare function normalizeCustomOutputValidationProfiles(value: unknown): CustomOutputValidationProfile[];
export declare function validateCustomOutputValidationProfiles(value: unknown): CustomOutputValidationProfileValidation;
export interface SelfCertificationFinding {
    claimType: string;
    claimText: string;
    hasEvidence: boolean;
    evidenceTools: string[];
    severity: 'warn' | 'fail';
    message: string;
}
/**
 * Cross-profile check: detect when the agent's text claims actions that
 * the tool trace does not support. Returns findings (empty if clean).
 */
export declare function detectSelfCertification(responseText: string, toolCallNames: string[]): SelfCertificationFinding[];
//# sourceMappingURL=outputValidation.d.ts.map