import type { AuditEntityInput } from './audit-engine.js';
import type { AiFixDeps } from './issue-fix-ai.js';
import type { SeoContentResearch } from './issue-content-research.js';
export declare const CONTENT_BRIEF_ISSUE_TYPES: Set<string>;
export interface SeoContentBriefSection {
    heading: string;
    bullets: string[];
}
export interface SeoContentBrief {
    issueType: string;
    entityId: string;
    fingerprint: string;
    generatedAt: string;
    summary: string;
    suggestedH1: string | null;
    targetWordCount: number | null;
    topics: string[];
    sections: SeoContentBriefSection[];
    keyTakeawayDraft: string | null;
    geoNote: string | null;
    aiUnavailable?: boolean;
}
export interface ContentBriefIssueInput {
    id: string;
    type: string;
    title: string;
    description?: string | null;
    recommendation?: string | null;
    entityId?: string | null;
}
export interface ContentBriefContext {
    entity: AuditEntityInput;
    updatedAt: string | Date;
}
export type ContentBriefResult = {
    ok: true;
    brief: SeoContentBrief;
} | {
    ok: false;
    code: 'unsupported' | 'unavailable' | 'rate_limited' | 'feature_disabled' | 'error';
    message: string;
};
export declare function supportsContentBrief(issueType: string): boolean;
export declare function contentBriefFromMetadata(metadata: unknown, issueType: string, entityId: string, updatedAt: string | Date): SeoContentBrief | null;
export declare function contentBriefToMetadata(brief: SeoContentBrief): Record<string, unknown>;
export declare function generateContentBrief(issue: ContentBriefIssueInput, ctx: ContentBriefContext, deps: AiFixDeps, options?: {
    research?: SeoContentResearch | null;
}): Promise<ContentBriefResult>;
/** Render a content brief as markdown for export handoff docs. */
export declare function renderContentBriefMarkdown(brief: SeoContentBrief): string;
//# sourceMappingURL=issue-content-brief.d.ts.map