export type ReviewSeverity = "error" | "warning" | "info";
export type ReviewStatus = "pass" | "warn" | "fail";
export type ReviewMode = "project" | "render";
export type ReviewFixOwner = "vibe" | "host-agent";
export interface ReviewIssue {
    severity: ReviewSeverity;
    code: string;
    message: string;
    file?: string;
    scene?: string;
    beatId?: string;
    timeRange?: {
        start: number;
        end: number;
        duration?: number;
    };
    sceneDurationSec?: number;
    narrationDurationSec?: number;
    audioCoverageRatio?: number;
    fixOwner?: ReviewFixOwner;
    suggestedFix?: string;
}
export interface ReviewSummary {
    issueCount: number;
    errorCount: number;
    warningCount: number;
    infoCount: number;
    fixOwners: {
        vibe: number;
        hostAgent: number;
    };
}
export interface ReviewReport {
    schemaVersion: "1";
    kind: "review";
    project: string;
    mode: ReviewMode;
    beat?: string;
    status: ReviewStatus;
    score: number;
    issues: ReviewIssue[];
    summary: ReviewSummary;
    retryWith: string[];
    sourceReports: string[];
    reportPath?: string;
}
export declare function statusFromIssues(issues: ReviewIssue[]): ReviewStatus;
export declare function scoreIssues(issues: ReviewIssue[]): number;
export declare function uniqueRetryWith(items: Array<string | undefined | null>): string[];
export declare function fixOwnerForIssue(issue: Pick<ReviewIssue, "code" | "fixOwner">): ReviewFixOwner;
export declare function normalizeReviewIssues(issues: ReviewIssue[], fallbackOwner?: ReviewFixOwner): ReviewIssue[];
export declare function summarizeReviewIssues(issues: ReviewIssue[]): ReviewSummary;
export declare function buildReviewReport(opts: {
    project: string;
    mode: ReviewMode;
    beat?: string;
    status: ReviewStatus;
    score: number;
    issues: ReviewIssue[];
    retryWith: string[];
    sourceReports?: string[];
    reportPath?: string;
}): ReviewReport;
export declare function defaultReviewReportPath(projectDir: string): string;
export declare function writeReviewReport(path: string, report: Record<string, unknown>): Promise<void>;
