import { type GoalRun, type GoalRunStatus } from "../../core/goal-store.js";
export interface GoalOverlayProps {
    cwd: string;
    onClose: () => void;
    onRunGoal: (run: GoalRun) => void;
    onVerifyGoal: (run: GoalRun) => void;
    onPauseGoal: (run: GoalRun) => void;
    onRefineGoal?: (run: GoalRun, feedback: string) => void;
    agentRunning?: boolean;
    autoExpandNewest?: boolean;
}
export declare function clampGoalSelectedIndex(index: number, length: number): number;
export declare function formatGoalPrerequisiteSummary(run: GoalRun): string;
export declare function formatGoalTaskSummary(run: GoalRun): string;
export declare function formatGoalVerifierSummary(run: GoalRun): string;
export declare function getGoalReadinessText(run: GoalRun): string;
export declare function formatGoalProgressText(run: GoalRun): string;
export declare function getGoalStatusCountsText(runs: readonly GoalRun[]): string;
export declare function clampGoalScrollOffset(offset: number, itemCount: number, viewportRows: number): number;
export declare function getGoalOverlayViewportRows(terminalRows: number, reservedRows?: number): number;
export declare function getGoalScrollOffsetForSelection({ selectedIndex, currentOffset, itemCount, viewportRows, }: {
    selectedIndex: number;
    currentOffset: number;
    itemCount: number;
    viewportRows: number;
}): number;
export declare function getGoalCardExtraRowCount(run: GoalRun): number;
export declare function getGoalListCardRowCount({ run }: {
    run: GoalRun;
}): number;
export interface GoalListWindow {
    start: number;
    end: number;
    hiddenBefore: number;
    hiddenAfter: number;
    rowsUsed: number;
}
export declare function getGoalListWindow({ runs, selectedIndex, viewportRows, }: {
    runs: readonly GoalRun[];
    selectedIndex: number;
    viewportRows: number;
}): GoalListWindow;
export declare function sortGoalRunsForOverlay(runs: readonly GoalRun[]): GoalRun[];
export declare function getGoalAutoExpandedState({ autoExpandNewest, loaded, runs, alreadyExpanded, }: {
    autoExpandNewest: boolean | undefined;
    loaded: boolean;
    runs: readonly GoalRun[];
    alreadyExpanded: boolean;
}): {
    selectedIndex: number;
    expandedRunId: string;
} | null;
export declare function shouldPersistGoalOverlayRuns(previousRuns: readonly GoalRun[], nextRuns: readonly GoalRun[]): boolean;
export declare function getGoalCardStatusColor({ status, selected, primaryColor, textColor, }: {
    status: GoalRunStatus;
    selected: boolean;
    primaryColor: string;
    textColor: string;
}): string;
export declare function getGoalCardTitleColor({ selected, primaryColor, textColor, }: {
    selected: boolean;
    primaryColor: string;
    textColor: string;
}): string;
export declare function formatGoalPlanMarkdown(run: GoalRun): string;
export interface GoalReviewSnapshot {
    id: string;
    run: GoalRun;
    content: string;
    markdownWidth: number;
}
export declare function createGoalReviewSnapshot({ run, markdownWidth, }: {
    run: GoalRun;
    markdownWidth: number;
}): GoalReviewSnapshot;
export type GoalExpandedDetailViewModel = GoalReviewSnapshot;
export declare function getGoalExpandedDetailViewModel({ run, markdownWidth, }: {
    run: GoalRun;
    markdownWidth: number;
}): GoalExpandedDetailViewModel;
export declare function GoalOverlay({ cwd, onClose, onRunGoal, onVerifyGoal, onPauseGoal, onRefineGoal, agentRunning, autoExpandNewest, }: GoalOverlayProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=GoalOverlay.d.ts.map