import React from 'react';
import { CustomCommandExecutor } from '../custom-commands/executor.js';
import { CustomCommandLoader } from '../custom-commands/loader.js';
import type { Session } from '../session/session-manager.js';
import type { CheckpointListItem } from './checkpoint.js';
import type { CustomCommand } from './commands.js';
import type { Message } from './core.js';
import type { UpdateInfo } from './utils.js';
export interface MessageSubmissionOptions {
    customCommandCache: Map<string, CustomCommand>;
    customCommandLoader: CustomCommandLoader | null;
    customCommandExecutor: CustomCommandExecutor | null;
    onClearMessages: () => Promise<void>;
    onEnterModelSelectionMode: () => void;
    onEnterProviderSelectionMode: () => void;
    onEnterModelDatabaseMode: () => void;
    onEnterConfigWizardMode: () => void;
    onEnterSettingsMode: () => void;
    onEnterMcpWizardMode: () => void;
    onEnterExplorerMode: () => void;
    onEnterIdeSelectionMode: () => void;
    onEnterCheckpointLoadMode: (checkpoints: CheckpointListItem[], currentMessageCount: number) => void;
    onEnterSessionSelectorMode?: (showAll?: boolean) => void;
    onResumeSession?: (session: Session) => void;
    onShowStatus: () => void;
    onEnterSchedulerMode?: () => void;
    onHandleChatMessage: (message: string) => Promise<void>;
    onAddToChatQueue: (component: React.ReactNode) => void;
    setLiveComponent: (component: React.ReactNode) => void;
    setIsToolExecuting: (value: boolean) => void;
    onCommandComplete?: () => void;
    getNextComponentKey: () => number;
    setMessages: (messages: Message[]) => void;
    messages: Message[];
    provider: string;
    model: string;
    theme: string;
    updateInfo: UpdateInfo | null;
    getMessageTokens: (message: Message) => number;
}
//# sourceMappingURL=app.d.ts.map