/**
 * Agent-readable outcome for `update_privacy_policy_with_ai`.
 *
 * The backend always returns a proposal: an AI draft when the model ran and
 * its draft passed the category guard, otherwise a deterministic section
 * merge. This puts the difference first in the tool result (`aiStep` +
 * `notice`) so an agent cannot present a merge as an AI draft.
 *
 * Skew-safe in both directions: a backend that returns `ai` (2026-09+) is
 * described from it; an older backend that only returns `usedLlm` /
 * `aiDegraded` / `keptHeadings` is described from those, and its
 * `kind: 'ai_updated'` on a non-AI proposal is corrected to `edited`.
 */
export type AiStep = 'ran' | 'did_not_run' | 'discarded' | 'not_needed';
export interface PrivacyAiUpdateView {
    aiStep: AiStep;
    notice: string;
    [key: string]: unknown;
}
export declare function describePrivacyAiUpdate(result: unknown): PrivacyAiUpdateView;
//# sourceMappingURL=privacy-ai-outcome.d.ts.map