import { type Api, type Model } from "@oh-my-pi/pi-ai"; import type { ModelRegistry } from "../config/model-registry"; import type { Settings } from "../config/settings"; /** * Generate a title for a session based on the first user message. * * @param firstMessage The first user message * @param registry Model registry * @param settings Settings used to resolve the smol role * @param sessionId Optional session id for sticky API key selection * @param currentModel Current model (used to derive title model) * @param metadataResolver Optional resolver evaluated after credential selection * to produce request metadata (e.g. user_id for session attribution). Using a * resolver instead of a pre-evaluated value ensures the metadata's account_uuid * reflects the credential actually selected for this request. */ export declare function generateSessionTitle(firstMessage: string, registry: ModelRegistry, settings: Settings, sessionId?: string, currentModel?: Model, metadataResolver?: (provider: string) => Record | undefined): Promise; export declare function formatSessionTerminalTitle(sessionName: string | undefined, cwd?: string): string; /** * Set the terminal title using OSC 0 (sets both tab and window title). Unsupported terminals ignore it. */ export declare function setTerminalTitle(title: string): void; export declare function setSessionTerminalTitle(sessionName: string | undefined, cwd?: string): void; /** * Save the current terminal title on terminals that support xterm window ops. */ export declare function pushTerminalTitle(): void; /** * Restore the previously saved terminal title on terminals that support xterm window ops. */ export declare function popTerminalTitle(): void;