/**
 * ADR-PIPELINE-079: Absolute-Date Roadmap with Pilot-Start Anchor.
 *
 * Pure functions. Given a query, optional config, and optional manifest,
 * resolve a pilot start date and project every phase / gate onto the
 * calendar with absolute ISO dates.
 *
 * No I/O — results consumed by buildRoadmapArtifact and renderDecisionMemo.
 */
export type PilotStartSource = 'query' | 'config' | 'manifest' | 'default';
export interface PilotStartResolution {
    /** ISO date (YYYY-MM-DD). */
    readonly startDate: string;
    readonly source: PilotStartSource;
    readonly reasoning: string;
}
/**
 * ADR-PIPELINE-079 §1: Resolve the pilot start date from four sources in
 * priority order:
 *
 *   1. Query text — explicit date or quarter reference
 *   2. Config — `pilot.startDate` field
 *   3. Manifest — `pilot_start_date` field
 *   4. Default — today + 14 days, rounded up to next Monday
 */
export declare function resolvePilotStart(query: string, config?: {
    pilot?: {
        startDate?: string;
    };
} | null, manifest?: {
    pilot_start_date?: string;
} | null, now?: Date): PilotStartResolution;
export interface DatedPhase {
    readonly id: string;
    readonly name: string;
    readonly startDate: string;
    readonly endDate: string;
    readonly durationWeeks: number;
}
export interface DatedGate {
    readonly afterPhase: string;
    readonly gateDate: string;
}
/**
 * Parse a duration string like "2-4 weeks" or "4-8 weeks" and return the
 * midpoint in weeks (rounded up). Falls back to 3 when the string can't
 * be parsed.
 */
export declare function parseDurationWeeks(duration: string): number;
/**
 * Project absolute dates onto an ordered list of phases. Each phase starts
 * the day after the previous phase ends. The first phase starts on `startDate`.
 *
 * Returns:
 *   - `phases` with `startDate`, `endDate`, `durationWeeks`
 *   - `gates` with one entry per inter-phase boundary carrying `gateDate`
 *     (= the endDate of the preceding phase)
 */
export declare function projectDates(startDate: string, phases: ReadonlyArray<{
    id: string;
    name: string;
    duration: string;
}>): {
    datedPhases: DatedPhase[];
    datedGates: DatedGate[];
};
/** Format an ISO date string as "Friday, May 10, 2026". */
export declare function renderAbsoluteDate(iso: string): string;
export declare function addDays(date: Date, days: number): Date;
export declare function nextMonday(date: Date): Date;
export declare function toISODate(date: Date): string;
//# sourceMappingURL=roadmap-dates.d.ts.map