interface Project {
    id: string;
    name: string;
    workdir: string;
    customInstructions?: string;
    dangerLevel?: DangerLevel;
    isStarred?: boolean;
    createdAt: string;
    updatedAt: string;
}
type SessionMode = string;
type ToolMode = string;
type SessionPhase = 'plan' | 'build' | 'verification' | 'blocked' | 'done';
type DangerLevel = 'normal' | 'dangerous';
interface Session {
    id: string;
    projectId: string;
    workdir: string;
    mode: SessionMode;
    phase: SessionPhase;
    isRunning: boolean;
    providerId?: string | null;
    providerModel?: string | null;
    createdAt: string;
    updatedAt: string;
    messages: Message[];
    criteria: Criterion[];
    contextWindows: ContextWindow[];
    executionState: ExecutionState | null;
    metadata: SessionMetadata;
    dangerLevel?: DangerLevel;
    messageCount?: number;
}
interface ContextWindow {
    id: string;
    sessionId: string;
    sequenceNumber: number;
    createdAt: string;
    summaryOfPrevious?: string;
    summaryTokenCount?: number;
    closedAt?: string;
    tokenCountAtClose?: number;
}
interface SessionMetadata {
    title?: string;
    totalTokensUsed: number;
    totalToolCalls: number;
    iterationCount: number;
}
interface RecentUserPrompt {
    id: string;
    content: string;
    timestamp: string;
}
interface SessionSummary {
    id: string;
    projectId: string;
    title?: string;
    workdir: string;
    mode: SessionMode;
    phase: SessionPhase;
    isRunning: boolean;
    providerId?: string | null;
    providerModel?: string | null;
    createdAt: string;
    updatedAt: string;
    criteriaCount: number;
    criteriaCompleted: number;
    messageCount: number;
    recentUserPrompts?: RecentUserPrompt[];
}
type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
type MessageSegment = {
    type: 'text';
    content: string;
} | {
    type: 'thinking';
    content: string;
} | {
    type: 'tool_call';
    toolCallId: string;
};
interface MessageStats {
    providerId: string;
    providerName: string;
    backend: ProviderBackend;
    model: string;
    mode: ToolMode;
    totalTime: number;
    toolTime: number;
    prefillTokens: number;
    prefTokenIncrement?: number;
    prefillSpeed: number;
    generationTokens: number;
    generationSpeed: number;
    llmCalls?: LLMCallStats[];
}
interface LLMCallStats {
    providerId: string;
    providerName: string;
    backend: ProviderBackend;
    model: string;
    callIndex: number;
    promptTokens: number;
    completionTokens: number;
    prefTokenIncrement?: number;
    ttft: number;
    completionTime: number;
    prefillSpeed: number;
    generationSpeed: number;
    totalTime: number;
    timestamp?: string;
    temperature?: number;
    topP?: number;
    topK?: number;
    maxTokens?: number;
}
interface StatsDataPoint {
    messageId: string;
    timestamp: string;
    providerId: string;
    providerName: string;
    backend: ProviderBackend;
    model: string;
    mode: ToolMode;
    responseIndex: number;
    prefillTokens: number;
    generationTokens: number;
    prefillSpeed: number;
    generationSpeed: number;
    totalTime: number;
    aiTime: number;
    toolTime: number;
}
interface CallStatsDataPoint {
    messageId: string;
    timestamp: string;
    providerId: string;
    providerName: string;
    backend: ProviderBackend;
    model: string;
    mode: ToolMode;
    responseIndex: number;
    sessionCallIndex: number;
    callIndex: number;
    promptTokens: number;
    completionTokens: number;
    ttft: number;
    completionTime: number;
    prefillSpeed: number;
    generationSpeed: number;
    totalTime: number;
    temperature?: number;
    topP?: number;
    topK?: number;
    maxTokens?: number;
}
interface SessionStats {
    totalTime: number;
    aiTime: number;
    toolTime: number;
    prefillTokens: number;
    generationTokens: number;
    avgPrefillSpeed: number;
    avgGenerationSpeed: number;
    responseCount: number;
    llmCallCount: number;
    dataPoints: StatsDataPoint[];
    callDataPoints: CallStatsDataPoint[];
    modelGroups: ModelSessionStats[];
}
interface StatsIdentity {
    providerId: string;
    providerName: string;
    backend: ProviderBackend;
    model: string;
}
interface ModelSessionStats extends StatsIdentity {
    key: string;
    label: string;
    totalTime: number;
    aiTime: number;
    toolTime: number;
    prefillTokens: number;
    generationTokens: number;
    avgPrefillSpeed: number;
    avgGenerationSpeed: number;
    responseCount: number;
    llmCallCount: number;
    dataPoints: StatsDataPoint[];
    callDataPoints: CallStatsDataPoint[];
}
interface PromptContext {
    systemPrompt: string;
    injectedFiles: InjectedFile[];
    userMessage: string;
    messages: PromptContextMessage[];
    tools: PromptContextTool[];
    requestOptions: PromptRequestOptions;
}
interface PromptContextMessage {
    role: 'user' | 'assistant' | 'tool';
    content: string;
    thinkingContent?: string;
    source: 'history' | 'runtime';
    toolCalls?: Array<{
        id: string;
        name: string;
        arguments: Record<string, unknown>;
    }>;
    toolCallId?: string;
    attachments?: Attachment[];
}
interface PromptContextTool {
    name: string;
    description: string;
    parameters: Record<string, unknown>;
}
interface PromptRequestOptions {
    toolChoice: 'auto' | 'none' | 'required' | {
        type: 'function';
        function: {
            name: string;
        };
    };
    disableThinking: boolean;
}
interface InjectedFile {
    path: string;
    content: string;
    source: 'agents-md' | 'global' | 'project';
}
interface PreparingToolCall {
    index: number;
    name: string;
    arguments?: string;
}
interface Attachment {
    id: string;
    filename: string;
    mimeType: 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'image/bmp' | 'image/svg+xml';
    size: number;
    data: string;
}
interface Message {
    id: string;
    role: MessageRole;
    content: string;
    contextWindowId?: string;
    toolCalls?: ToolCall[];
    preparingToolCalls?: PreparingToolCall[];
    thinkingContent?: string;
    toolCallId?: string;
    toolName?: string;
    toolResult?: ToolResult;
    timestamp: string;
    tokenCount?: number;
    isCompacted?: boolean;
    originalMessageIds?: string[];
    segments?: MessageSegment[];
    stats?: MessageStats;
    partial?: boolean;
    completeReason?: 'complete' | 'stopped' | 'error' | 'waiting_for_user' | 'truncated';
    isSystemGenerated?: boolean;
    isStreaming?: boolean;
    messageKind?: 'correction' | 'auto-prompt' | 'context-reset' | 'task-completed' | 'workflow-started' | 'command';
    isCompactionSummary?: boolean;
    subAgentId?: string;
    subAgentType?: string;
    promptContext?: PromptContext;
    attachments?: Attachment[];
    metadata?: {
        type: string;
        name: string;
        color: string;
    };
}
interface ToolCall {
    id: string;
    name: string;
    arguments: Record<string, unknown>;
    result?: ToolResult;
    startedAt?: number;
    streamingOutput?: Array<{
        stream: 'stdout' | 'stderr';
        content: string;
        timestamp: number;
    }>;
    parseError?: string;
    rawArguments?: string;
}
/** A single line of context around an edit */
interface EditContextLine {
    lineNumber: number;
    content: string;
}
/** A single edit within a region (for replace_all with multiple matches) */
interface EditContextEdit {
    startLine: number;
    endLine: number;
    oldContent: string;
    newContent: string;
}
/**
 * A region of the file showing context around one or more edits.
 * Multiple edits are merged when their contexts overlap.
 */
interface EditContextRegion {
    beforeContext: EditContextLine[];
    afterContext: EditContextLine[];
    startLine: number;
    endLine: number;
    oldContent: string;
    newContent: string;
    edits: EditContextEdit[];
}
interface ToolResult {
    success: boolean;
    output?: string;
    error?: string;
    durationMs: number;
    truncated: boolean;
    diagnostics?: Diagnostic[];
    editContext?: {
        regions: EditContextRegion[];
    };
    metadata?: Record<string, unknown>;
}
type ToolName = 'read_file' | 'write_file' | 'edit_file' | 'run_command' | 'glob' | 'grep' | 'ask_user' | 'criterion' | 'todo' | 'web_fetch';
interface Criterion {
    id: string;
    description: string;
    status: CriterionStatus;
    attempts: CriterionAttempt[];
}
type CriterionStatus = {
    type: 'pending';
} | {
    type: 'in_progress';
} | {
    type: 'completed';
    completedAt: string;
    reason?: string;
} | {
    type: 'passed';
    verifiedAt: string;
    reason?: string;
} | {
    type: 'failed';
    reason: string;
    failedAt: string;
};
interface CriterionAttempt {
    attemptNumber: number;
    status: 'passed' | 'failed';
    timestamp: string;
    details?: string;
}
interface Todo {
    content: string;
    status: 'pending' | 'in_progress' | 'completed';
}
interface FileReadEntry {
    hash: string;
    readAt: string;
}
interface ExecutionState {
    iteration: number;
    modifiedFiles: string[];
    readFiles: Record<string, FileReadEntry>;
    consecutiveFailures: number;
    lastFailedTool?: string;
    lastFailureReason?: string;
    currentTokenCount: number;
    messageCountAtLastUpdate: number;
    compactionCount: number;
    startedAt: string;
    lastActivityAt: string;
    lastModeWithReminder?: string;
    cachedSystemPrompt?: string;
    dynamicContextHash?: string;
    dynamicContextChanged?: boolean;
}
interface ContextState {
    currentTokens: number;
    maxTokens: number;
    compactionCount: number;
    dangerZone: boolean;
    canCompact: boolean;
    dynamicContextChanged: boolean;
}
interface ValidationResult {
    allPassed: boolean;
    results: CriterionValidation[];
}
interface CriterionValidation {
    criterionId: string;
    status: 'pass' | 'fail';
    reasoning: string;
    issues: string[];
}
interface Diagnostic {
    path: string;
    range: {
        start: {
            line: number;
            character: number;
        };
        end: {
            line: number;
            character: number;
        };
    };
    severity: 'error' | 'warning' | 'info' | 'hint';
    message: string;
    source: string;
    code?: string | number;
}
/** Supported LLM inference backends */
type LlmBackend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'opencode-go' | 'unknown';
/** Extended backend type including cloud providers */
type ProviderBackend = LlmBackend | 'openai' | 'anthropic' | 'auto';
/** Model configuration with context window */
interface ModelConfig {
    id: string;
    contextWindow: number;
    source: 'backend' | 'user' | 'default';
    temperature?: number;
    topP?: number;
    topK?: number;
    maxTokens?: number;
    supportsVision?: boolean;
    defaultTemperature?: number;
    defaultTopP?: number;
    defaultTopK?: number;
    defaultMaxTokens?: number;
}
/** LLM provider configuration */
interface Provider {
    id: string;
    name: string;
    url: string;
    backend: ProviderBackend;
    apiKey?: string | undefined;
    models: ModelConfig[];
    isActive: boolean;
    createdAt: string;
    status?: 'connected' | 'disconnected' | 'unknown';
}
interface Config {
    llm: {
        baseUrl: string;
        model: string;
        timeout: number;
        idleTimeout: number;
        /** Backend type - 'auto' for auto-detection, or explicit backend name */
        backend: LlmBackend | 'auto';
        /** API key for cloud providers */
        apiKey?: string;
        /** Disable thinking/reasoning globally (for e2e tests) */
        disableThinking?: boolean;
    };
    context: {
        maxTokens: number;
        compactionThreshold: number;
        compactionTarget: number;
    };
    agent: {
        maxIterations: number;
        maxConsecutiveFailures: number;
        toolTimeout: number;
    };
    server: {
        port: number;
        host?: string;
        openBrowser?: boolean;
    };
    database: {
        path: string;
    };
    logging?: {
        level: 'debug' | 'info' | 'warn' | 'error';
    };
    mode?: 'development' | 'production' | 'test';
    dev?: boolean;
    /** Configured providers (loaded from global config) */
    providers?: Provider[] | undefined;
    /** Default model selection in format "providerId/modelName" */
    defaultModelSelection?: string | undefined;
    /** ID of the active provider (deprecated, use defaultModelSelection) */
    activeProviderId?: string | undefined;
    /** Workspace directory for projects */
    workdir: string;
    /** Active workflow ID (defaults to "default") */
    activeWorkflowId?: string | undefined;
}
interface ElementData {
    tag: string;
    id: string | null;
    className: string | null;
    xpath: string;
    text: string | null;
    outerHTML: string;
    rect: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    attributes: Record<string, string>;
}

type ClientMessageType = 'session.load' | 'context.compact' | 'context.checkDynamic' | 'context.applyDynamic' | 'runner.launch' | 'path.confirm' | 'ask.answer';
interface ClientMessage<T = unknown> {
    id: string;
    type: ClientMessageType;
    payload: T;
}
interface SessionLoadPayload {
    sessionId: string;
    lastEventSeq?: number;
}
interface AskAnswerPayload {
    callId: string;
    answer: string;
}
interface QueuedMessage {
    queueId: string;
    mode: 'asap' | 'completion';
    content: string;
    attachments?: Attachment[];
    queuedAt: string;
    messageKind?: string;
}
type ServerMessageType = 'project.state' | 'project.list' | 'project.deleted' | 'session.state' | 'session.list' | 'session.deleted' | 'session.deletedAll' | 'session.running' | 'session.name_generated' | 'chat.delta' | 'chat.thinking' | 'chat.tool_preparing' | 'chat.tool_call' | 'chat.tool_output' | 'chat.tool_result' | 'chat.todo' | 'chat.progress' | 'chat.format_retry' | 'chat.message' | 'chat.message_updated' | 'chat.done' | 'chat.vision_fallback' | 'chat.error' | 'chat.path_confirmation' | 'chat.ask_user' | 'mode.changed' | 'phase.changed' | 'task.completed' | 'criteria.updated' | 'context.state' | 'settings.value' | 'provider.changed' | 'queue.state' | 'devServer.output' | 'devServer.state' | 'backgroundProcess.started' | 'backgroundProcess.output' | 'backgroundProcess.exited' | 'backgroundProcess.removed' | 'git.status' | 'lsp.diagnostics' | 'error' | 'ack';
interface ServerMessage<T = unknown> {
    id?: string;
    type: ServerMessageType;
    payload: T;
    seq?: number;
    sessionId?: string;
}
interface ProjectStatePayload {
    project: Project;
}
interface ProjectListPayload {
    projects: Project[];
}
interface ProjectDeletedPayload {
    projectId: string;
}
interface SessionStatePayload {
    session: Session;
    messages: Message[];
    pendingConfirmations: PendingPathConfirmationPayload[];
    gitStatus?: GitStatusPayload;
}
interface PendingPathConfirmationPayload {
    callId: string;
    tool: string;
    paths: string[];
    workdir: string;
    reason: 'outside_workdir' | 'sensitive_file' | 'both' | 'dangerous_command' | 'git_no_verify';
}
interface SessionListPayload {
    sessions: SessionSummary[];
}
interface SessionRunningPayload {
    isRunning: boolean;
}
interface SessionNameGeneratedPayload {
    name: string;
}
interface ChatDeltaPayload {
    messageId: string;
    content: string;
    subAgentType?: string;
}
interface ChatThinkingPayload {
    messageId: string;
    content: string;
}
interface ChatToolPreparingPayload {
    messageId: string;
    index: number;
    name: string;
    arguments?: string;
}
interface ChatToolCallPayload {
    messageId: string;
    callId: string;
    tool: string;
    args: Record<string, unknown>;
}
interface ChatToolResultPayload {
    messageId: string;
    callId: string;
    tool: string;
    result: ToolResult;
}
interface ChatToolOutputPayload {
    messageId: string;
    callId: string;
    output: string;
    stream: 'stdout' | 'stderr';
}
interface ChatTodoPayload {
    todos: Todo[];
}
interface ChatProgressPayload {
    message: string;
    phase?: 'summary' | 'mode_switch' | 'starting' | 'context_warning' | 'context_error';
}
interface ChatFormatRetryPayload {
    attempt: number;
    maxAttempts: number;
}
interface ChatVisionFallbackPayload {
    type: 'start' | 'done';
    messageId: string;
    attachmentId: string;
    filename?: string;
    description?: string;
}
interface ChatMessagePayload {
    message: Message;
}
interface ChatMessageUpdatedPayload {
    messageId: string;
    updates: Partial<Pick<Message, 'content' | 'thinkingContent' | 'toolCalls' | 'isStreaming' | 'stats' | 'promptContext' | 'partial'>>;
}
interface ChatDonePayload {
    messageId: string;
    reason: 'complete' | 'stopped' | 'error' | 'waiting_for_user' | 'truncated';
    agentType?: 'sub-agent';
    stats?: {
        model: string;
        mode: ToolMode;
        totalTime: number;
        toolTime: number;
        prefillTokens: number;
        prefillSpeed: number;
        generationTokens: number;
        generationSpeed: number;
    };
}
interface ChatErrorPayload {
    error: string;
    recoverable: boolean;
}
type PathConfirmationReason = 'outside_workdir' | 'sensitive_file' | 'both' | 'dangerous_command' | 'git_no_verify';
interface ChatPathConfirmationPayload {
    callId: string;
    tool: string;
    paths: string[];
    workdir: string;
    reason: PathConfirmationReason;
}
interface PathConfirmPayload {
    callId: string;
    approved: boolean;
    alwaysAllow?: boolean;
}
interface ChatAskUserPayload {
    callId: string;
    question: string;
}
interface ModeChangedPayload {
    mode: SessionMode;
    auto: boolean;
    reason?: string;
}
interface PhaseChangedPayload {
    phase: SessionPhase;
}
interface TaskCompletedPayload {
    summary: string | null;
    iterations: number;
    totalTimeSeconds: number;
    totalToolCalls: number;
    totalTokensGenerated: number;
    avgGenerationSpeed: number;
    responseCount: number;
    llmCallCount: number;
    criteria: Array<{
        id: string;
        description: string;
        status: string;
    }>;
    workflowName?: string;
    workflowId?: string;
    workflowColor?: string;
}
interface CriteriaUpdatedPayload {
    criteria: Criterion[];
    changedId?: string;
}
interface ContextStatePayload {
    context: ContextState;
    subAgentId?: string;
}
interface ProviderChangedPayload {
    providerId: string;
    providerName: string;
    model: string;
    backend: string;
}
interface QueueStatePayload {
    messages: QueuedMessage[];
}
interface DevServerOutputPayload {
    workdir: string;
    stream: 'stdout' | 'stderr';
    content: string;
}
interface DevServerStatePayload {
    workdir: string;
    state: 'off' | 'running' | 'warning' | 'error';
    errorMessage?: string;
}
interface BackgroundProcessStartedPayload {
    processId: string;
    name: string;
    pid: number;
    status: BackgroundProcessStatus;
}
interface BackgroundProcessOutputPayload {
    processId: string;
    stream: 'stdout' | 'stderr';
    content: string;
}
interface BackgroundProcessExitedPayload {
    processId: string;
    exitCode: number | null;
}
interface BackgroundProcessRemovedPayload {
    processId: string;
}
interface GitStatusPayload {
    branch: string | null;
    diff: {
        files: GitDiffFile[];
    };
}
interface GitDiffFile {
    path: string;
    status: 'modified' | 'added' | 'deleted';
    additions: number;
    deletions: number;
}
type BackgroundProcessStatus = 'pending' | 'starting' | 'running' | 'stopping' | 'exited';
interface BackgroundProcess {
    id: string;
    sessionId: string;
    name: string;
    command: string;
    cwd: string;
    pid: number | null;
    status: BackgroundProcessStatus;
    exitCode: number | null;
    createdAt: number;
    startedAt: number | null;
    endedAt: number | null;
}
interface LogLine {
    offset: number;
    content: string;
    timestamp: number;
    stream: 'stdout' | 'stderr';
}
interface LspDiagnosticsPayload {
    path: string;
    diagnostics: Diagnostic[];
}
interface ErrorPayload {
    code: string;
    message: string;
    details?: unknown;
}
interface ContextCompactionEvent {
    beforeTokens: number;
    afterTokens: number;
}
interface AskUserEvent {
    question: string;
    callId: string;
}
type AgentEvent = {
    type: 'aborted';
} | {
    type: 'text_delta';
    content: string;
} | {
    type: 'thinking';
    content: string;
} | {
    type: 'error';
    error: string;
    recoverable: boolean;
} | {
    type: 'context_compaction';
    beforeTokens: number;
    afterTokens: number;
} | {
    type: 'done';
    allCriteriaPassed: boolean;
    summary: string;
    stats: ChatDonePayload['stats'];
} | {
    type: 'stuck';
    reason: string;
    failedAttempts: number;
} | {
    type: 'tool_call';
    callId: string;
    tool: string;
    args: Record<string, unknown>;
} | {
    type: 'tool_result';
    callId: string;
    tool: string;
    result: ToolResult;
} | {
    type: 'tool_error';
    callId: string;
    tool: string;
    error: string;
    willRetry: boolean;
} | {
    type: 'ask_user';
    question: string;
    callId: string;
} | {
    type: 'format_retry';
    attempt: number;
    maxAttempts: number;
};
declare function createClientMessage<T>(type: ClientMessageType, payload: T): ClientMessage<T>;
declare function createServerMessage<T>(type: ServerMessageType, payload: T, correlationId?: string): ServerMessage<T>;
declare function isClientMessage(msg: unknown): msg is ClientMessage;
declare function isServerMessage(msg: unknown): msg is ServerMessage;
type QueueEventType = 'queue.added' | 'queue.drained' | 'queue.cancelled';
interface QueueAddedEvent {
    type: 'queue.added';
    data: {
        queueId: string;
        mode: 'asap' | 'completion';
        content: string;
        attachments?: Attachment[];
        messageKind?: string;
        queuedAt: string;
    };
}
interface QueueDrainedEvent {
    type: 'queue.drained';
    data: {
        queueId: string;
    };
}
interface QueueCancelledEvent {
    type: 'queue.cancelled';
    data: {
        queueId: string;
    };
}
type QueueEvent = QueueAddedEvent | QueueDrainedEvent | QueueCancelledEvent;

export { type GitStatusPayload as $, type AgentEvent as A, type BackgroundProcess as B, type CallStatsDataPoint as C, type Config as D, type ContextCompactionEvent as E, type ContextState as F, type ContextStatePayload as G, type ContextWindow as H, type CriteriaUpdatedPayload as I, type Criterion as J, type CriterionAttempt as K, type CriterionStatus as L, type Message as M, type CriterionValidation as N, type DangerLevel as O, type DevServerOutputPayload as P, type DevServerStatePayload as Q, type Diagnostic as R, type SessionStats as S, type EditContextEdit as T, type EditContextLine as U, type EditContextRegion as V, type ElementData as W, type ErrorPayload as X, type ExecutionState as Y, type FileReadEntry as Z, type GitDiffFile as _, type AskAnswerPayload as a, type InjectedFile as a0, type LLMCallStats as a1, type LlmBackend as a2, type LogLine as a3, type LspDiagnosticsPayload as a4, type MessageRole as a5, type MessageSegment as a6, type MessageStats as a7, type ModeChangedPayload as a8, type ModelConfig as a9, type ServerMessageType as aA, type Session as aB, type SessionListPayload as aC, type SessionLoadPayload as aD, type SessionMetadata as aE, type SessionMode as aF, type SessionNameGeneratedPayload as aG, type SessionPhase as aH, type SessionRunningPayload as aI, type SessionStatePayload as aJ, type SessionSummary as aK, type StatsDataPoint as aL, type StatsIdentity as aM, type TaskCompletedPayload as aN, type Todo as aO, type ToolCall as aP, type ToolMode as aQ, type ToolName as aR, type ToolResult as aS, type ValidationResult as aT, createClientMessage as aU, createServerMessage as aV, isClientMessage as aW, isServerMessage as aX, type ModelSessionStats as aa, type PathConfirmPayload as ab, type PathConfirmationReason as ac, type PendingPathConfirmationPayload as ad, type PhaseChangedPayload as ae, type PreparingToolCall as af, type Project as ag, type ProjectDeletedPayload as ah, type ProjectListPayload as ai, type ProjectStatePayload as aj, type PromptContext as ak, type PromptContextMessage as al, type PromptContextTool as am, type PromptRequestOptions as an, type Provider as ao, type ProviderBackend as ap, type ProviderChangedPayload as aq, type QueueAddedEvent as ar, type QueueCancelledEvent as as, type QueueDrainedEvent as at, type QueueEvent as au, type QueueEventType as av, type QueueStatePayload as aw, type QueuedMessage as ax, type RecentUserPrompt as ay, type ServerMessage as az, type AskUserEvent as b, type Attachment as c, type BackgroundProcessExitedPayload as d, type BackgroundProcessOutputPayload as e, type BackgroundProcessRemovedPayload as f, type BackgroundProcessStartedPayload as g, type BackgroundProcessStatus as h, type ChatAskUserPayload as i, type ChatDeltaPayload as j, type ChatDonePayload as k, type ChatErrorPayload as l, type ChatFormatRetryPayload as m, type ChatMessagePayload as n, type ChatMessageUpdatedPayload as o, type ChatPathConfirmationPayload as p, type ChatProgressPayload as q, type ChatThinkingPayload as r, type ChatTodoPayload as s, type ChatToolCallPayload as t, type ChatToolOutputPayload as u, type ChatToolPreparingPayload as v, type ChatToolResultPayload as w, type ChatVisionFallbackPayload as x, type ClientMessage as y, type ClientMessageType as z };
