import type { GitCommit } from "./journal-git-client.js";
export interface PhaseOverride {
    date: string;
    slug: string;
    title: string;
}
export interface PhasePlan {
    slug: string;
    title: string;
    startDate: string;
    endDate: string;
    commits: GitCommit[];
    source: "auto" | "manual";
}
export declare class PhaseOverridesParseError extends Error {
    readonly line: number;
    constructor(message: string, line: number);
}
export interface DetectPhasesOptions {
    /** Drop auto-titled "unclassified" phases with fewer than N commits (default 0 = keep all).
     *  Manual phases and named auto phases are never dropped. */
    minUnclassifiedCommits?: number;
}
export declare function detectPhases(commits: GitCommit[], overrides?: PhaseOverride[], options?: DetectPhasesOptions): PhasePlan[];
export declare function parsePhaseOverridesYAML(raw: string): PhaseOverride[];
//# sourceMappingURL=journal-phase-detector.d.ts.map