import { Effect, Terminal } from "effect";
import { Prompt } from "effect/unstable/cli";
import type { LoadedCodexData, ThreadRow, TranscriptMetadata } from "./types.js";
export type ResumeCandidate = {
id: string;
thread: ThreadRow;
title: string;
shortId: string;
updatedLabel: string;
resumeCommand: string;
sortTime: number;
};
export type ResumeChoice = {
value: string;
title: string;
description?: string;
};
export type ResumeChoiceOptions = {
terminalColumns?: number;
};
export type ResumeCandidateOptions = {
timeZone?: string;
};
export type ResumePromptConfig = {
message: string;
choices: ResumeChoice[];
maxPerPage: number;
};
declare const NonInteractiveTerminal_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "NonInteractiveTerminal";
} & Readonly;
export declare class NonInteractiveTerminal extends NonInteractiveTerminal_base<{}> {
get message(): string;
}
export declare function findResumeCandidates(data: LoadedCodexData, cwd: string, options?: ResumeCandidateOptions): ResumeCandidate[];
export declare function getLatestResumeCandidate(candidates: readonly ResumeCandidate[]): ResumeCandidate | null;
export declare function createResumeChoices(candidates: readonly ResumeCandidate[], options?: ResumeChoiceOptions): ResumeChoice[];
export declare function createResumePromptConfig(candidates: readonly ResumeCandidate[], options?: ResumeChoiceOptions): ResumePromptConfig;
export declare const selectResumeCandidate: (candidates: readonly ResumeCandidate[]) => Effect.Effect;
export declare function formatResumeCommand(threadId: string): string;
export declare function formatSelectedResumeResult(resumeCommand: string): string;
export declare function formatNoChatsFound(cwd: string): string;
export declare function formatCliHeader(options?: {
codexHome?: string;
color?: boolean;
}): string;
export declare function formatReadingLine(codexHome: string, cwd: string): string;
export declare function formatUnknownSubcommandError(subcommand: string): string;
export declare function resolveResumeTitle(thread: ThreadRow, transcript?: TranscriptMetadata | null): string;
export declare function formatResumeChoiceName(candidate: ResumeCandidate, position?: number, options?: ResumeChoiceOptions & {
numberWidth?: number;
}): string;
export declare function formatSelectedResumeChoiceName(candidate: ResumeCandidate): string;
export declare function formatSubmittedResumePromptLine(candidate: ResumeCandidate): string;
export declare function getThreadResumeTime(thread: ThreadRow): number;
export declare function formatUpdatedTime(thread: ThreadRow, options?: ResumeCandidateOptions): string;
export {};