/**
 * Tier-2 AI-assisted SEO issue fixes — approval-gated, cached for stable apply.
 *
 * Used when deterministic fixes (issue-fix.ts) cannot produce a good result, or
 * for issue types that require generated copy (duplicates, schema markup).
 */
import type { ActuateDB } from '../db/client-types.js';
import { type SeoFixFieldChange, type SeoIssueFixContext, type SeoIssueFixInput, type SeoIssueFixSuggestion } from './issue-fix.js';
export declare const AI_FIX_TYPES: Set<string>;
export interface AiFixDeps {
    db: ActuateDB;
    userId: string;
    collection: string;
}
export type AiFixResult = {
    ok: true;
    suggestion: SeoIssueFixSuggestion;
} | {
    ok: false;
    code: 'unavailable' | 'rate_limited' | 'budget_exceeded' | 'feature_disabled' | 'error';
    message: string;
};
/**
 * Generate an AI-assisted fix suggestion. Callers must cache the returned
 * suggestion on the issue (metadata.pendingFix) before apply — model output is
 * not reproducible on re-generation.
 */
export declare function suggestAiFix(issue: SeoIssueFixInput, ctx: SeoIssueFixContext, deps: AiFixDeps): Promise<AiFixResult>;
export interface PendingFixCache {
    fingerprint: string;
    patch: Record<string, unknown>;
    changes: SeoFixFieldChange[];
    justification: string;
    source: 'ai';
    autoFixable: boolean;
}
export declare function pendingFixFromMetadata(metadata: unknown): PendingFixCache | null;
export declare function pendingFixToMetadata(suggestion: SeoIssueFixSuggestion): Record<string, unknown>;
//# sourceMappingURL=issue-fix-ai.d.ts.map