import type { ExtensionError, ExtensionUIContext } from "../extensibility/extensions/types"; import type { AgentSession } from "../session/agent-session"; /** Action name for an extension-originated send failure. */ export type ExtensionSendAction = "extension_send" | "extension_send_user"; export interface InitializeExtensionsOptions { /** Reports an error thrown by an extension-initiated send. */ reportSendError: (action: ExtensionSendAction, error: Error) => void; /** Reports a runtime error surfaced through {@link ExtensionRunner.onError}. */ reportRuntimeError: (error: ExtensionError) => void; /** Optional shutdown hook (rpc mode signals its loop; print mode is a no-op). */ onShutdown?: () => void; /** Optional UI context (rpc supplies one; print runs headless). */ uiContext?: ExtensionUIContext; } /** * Initialize the session's extension runner with the standard action set * shared by non-interactive modes, then emit `session_start`. * * No-op when the session was constructed without an extension runner. */ export declare function initializeExtensions(session: AgentSession, options: InitializeExtensionsOptions): Promise;