import type { ChatMessage, ProviderId } from "../../types.js"; /** * Naming traffic is auxiliary: it keeps its own cache-affinity identity so a * short, unrelated prompt can never evict the turn/compaction cached prefix. */ export declare function completeForSessionNaming(messages: ChatMessage[], route: { provider?: ProviderId | undefined; model?: string | undefined; }): Promise; export interface SessionNamingDeps { readonly complete: (messages: ChatMessage[]) => Promise; readonly applyTitle: (title: string) => void; readonly enabled: () => boolean; } export declare class SessionNamer { private readonly deps; private userPromptCount; private nextNamingAt; private summary; private lastTitle; private namedMessageCount; private inFlight; private manual; constructor(deps: SessionNamingDeps); noteUserPrompt(userSent: boolean): void; markManual(): void; restore(title: string | undefined): void; reset(): void; maybeRename(history: readonly ChatMessage[]): void; private rename; }