import type { Database } from "bun:sqlite";
import type { Plan, Task } from "../types/index.js";
import { type TaskCommit, type TaskVerification } from "../db/task-commits.js";
export interface GenerateReleaseNotesInput {
    project_id?: string;
    plan_id?: string;
    task_ids?: string[];
    tag?: string;
    since?: string;
    until?: string;
    title?: string;
    version?: string;
    generated_at?: string;
}
export interface ReleaseNotesScope {
    project_id: string | null;
    project_name: string | null;
    plan_id: string | null;
    plan_name: string | null;
    task_ids: string[];
    tag: string | null;
    since: string | null;
    until: string | null;
}
export interface ReleaseNotesTask {
    id: string;
    short_id: string | null;
    title: string;
    description: string | null;
    priority: Task["priority"];
    project_id: string | null;
    plan_id: string | null;
    tags: string[];
    completed_at: string | null;
    breaking_changes: string[];
    migration_notes: string[];
    commits: TaskCommit[];
    verifications: TaskVerification[];
}
export interface ReleaseNotesPlan {
    id: string;
    name: string;
    status: Plan["status"];
    task_count: number;
    completed_count: number;
}
export interface ReleaseNotesDocument {
    schema_version: 1;
    generated_at: string;
    title: string;
    version: string | null;
    local_only: true;
    scope: ReleaseNotesScope;
    summary: {
        tasks: number;
        plans: number;
        commits: number;
        verifications: number;
        passed_verifications: number;
        breaking_changes: number;
        migration_notes: number;
    };
    plans: ReleaseNotesPlan[];
    tasks: ReleaseNotesTask[];
    commits: TaskCommit[];
    verifications: TaskVerification[];
    breaking_changes: Array<{
        task_id: string;
        title: string;
        note: string;
    }>;
    migration_notes: Array<{
        task_id: string;
        title: string;
        note: string;
    }>;
    warnings: string[];
}
export declare function generateReleaseNotes(input?: GenerateReleaseNotesInput, db?: Database): ReleaseNotesDocument;
export declare function renderReleaseNotesMarkdown(document: ReleaseNotesDocument): string;
//# sourceMappingURL=release-notes.d.ts.map