import { type CachedContainer, type Component, type TUI } from "@catui/tui"; import type { AgentSession } from "../../../core/runtime/agent-session.js"; /** Host capabilities needed by the persona/soul/memory command handlers. */ export interface PersonaCommandHandlersContext { readonly session: AgentSession; readonly chatContainer: CachedContainer; readonly ui: TUI; showError(errorMessage: string): void; showStatus(message: string): void; showSelector(create: (done: () => void) => { component: Component; focus: Component; }): void; /** Persona switching ends with a full extension/theme reload (session-commands slice). */ handleReloadCommand(): Promise; } export declare class PersonaCommandHandlersController { private readonly ctx; constructor(ctx: PersonaCommandHandlersContext); /** * If session is tagged with a persona, apply it to env + active persona file, * then reload session runtime so Catui/NanoMem/Skills/MCP can be re-wired. */ applyPersonaFromSessionIfAny(): Promise; handleSoulCommand(): void; handlePersonaCommand(text: string): Promise; private switchPersona; handleMemoryCommand(): void; getAvailablePersonaIds(): string[]; handleBrowserOptInCommand(): void; }