export declare const SESSION_BACKENDS: readonly ["claude", "pi", "codex"]; export interface SessionRegistryWriter { generateSessionName(): Promise; registerSession(name: string, opts: { sessionId: string; channel: string; backend: string; kind: 'local' | 'scheduled'; projectId: string; label?: string | null; profileName?: string | null; }): Promise; } export interface RegisterNamedSessionOpts { sessionId: string; channel: string; backend: string; projectId: string; kind?: 'local' | 'scheduled'; label?: string | null; profileName?: string | null; } /** Generate a fresh session name and register a registry record for sessionId. Returns the name. * Centralizes the generateSessionName + registerSession pairing used by inbound-message session * creation (agent-runner) and TUI fresh-session creation. */ export declare function registerNamedSession(store: SessionRegistryWriter, opts: RegisterNamedSessionOpts): Promise; export interface AttachExistingSessionOpts { sessionId: string; sessionName: string; backend: string; profileName?: string | null; } /** Attach a channel to an existing session: restore its profile (if any), point sessions.json at it, * and switch the conversation ledger. Mirrors the !resume switch sequence. */ export declare function attachExistingSession(channel: string, opts: AttachExistingSessionOpts): Promise; /** Clear a channel's session state: drop sessions.json keys for every backend, clean session * backups, and clear the conversation ledger. Mirrors the store-level half of !new. */ export declare function resetChannelSession(channel: string): Promise;