/**
 * Task-to-Changelog generation.
 *
 * Generates CHANGELOG.md content from CLEO task metadata.
 * Groups tasks by labels (features, fixes, docs, etc.) and
 * formats as conventional changelog sections.
 *
 * @task T4454
 * @epic T4454
 */
import type { DataAccessor } from '../store/data-accessor.js';
/** Task info for changelog generation. */
interface ChangelogTask {
    id: string;
    title: string;
    labels: string[];
    parentId?: string;
    completedAt?: string;
}
/**
 * Discover task IDs for a release from completed tasks.
 * Optionally filtered by date range or specific task IDs.
 */
export declare function discoverReleaseTasks(options?: {
    since?: string;
    until?: string;
    taskIds?: string[];
}, cwd?: string, accessor?: DataAccessor): Promise<ChangelogTask[]>;
/** Grouped changelog sections. */
export interface ChangelogSection {
    title: string;
    entries: Array<{
        taskId: string;
        description: string;
    }>;
}
/** Group tasks into changelog sections. */
export declare function groupTasksIntoSections(tasks: ChangelogTask[]): ChangelogSection[];
/** Generate changelog markdown for a version. */
export declare function generateChangelogMarkdown(version: string, date: string, sections: ChangelogSection[]): string;
/** Format changelog data as JSON. */
export declare function formatChangelogJson(version: string, date: string, sections: ChangelogSection[]): Record<string, unknown>;
/** Write changelog content to a file. */
export declare function writeChangelogFile(filePath: string, content: string): void;
/** Append a new release section to an existing CHANGELOG.md. */
export declare function appendToChangelog(filePath: string, newContent: string): void;
/**
 * Full changelog generation: discover tasks, group, generate, write.
 */
export declare function generateChangelog(version: string, options?: {
    since?: string;
    until?: string;
    taskIds?: string[];
    outputPath?: string;
    append?: boolean;
}, cwd?: string, accessor?: DataAccessor): Promise<Record<string, unknown>>;
export {};
//# sourceMappingURL=changelog.d.ts.map