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 { AIProviderConfig, TuneConfig } from './config.js';
import type { DevelopmentMode, ImageAttachment, 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>;
    onRenameSession: (name: string) => void;
    commandArgs?: string[];
    onEnterModelSelectionMode: () => void;
    onEnterModelDatabaseMode: () => void;
    onEnterConfigWizardMode: () => void;
    onEnterSettingsMode: () => void;
    onEnterMcpWizardMode: () => void;
    onEnterExplorerMode: () => void;
    onEnterIdeSelectionMode: () => void;
    onEnterTune: () => void;
    onEnterCheckpointLoadMode: (checkpoints: CheckpointListItem[], currentMessageCount: number) => void;
    onEnterSessionSelectorMode?: (showAll?: boolean) => void;
    onResumeSession?: (session: Session) => void;
    onShowStatus: () => void;
    onHandleChatMessage: (message: string, displayValue?: string, images?: ImageAttachment[]) => Promise<void>;
    onAddToChatQueue: (component: React.ReactNode) => void;
    setLiveComponent: (component: React.ReactNode) => void;
    setIsToolExecuting: (value: boolean) => void;
    onCommandComplete?: () => void;
    setMessages: (messages: Message[]) => void;
    messages: Message[];
    provider: string;
    providerConfig: AIProviderConfig | null;
    client: import('./core.js').LLMClient | null;
    model: string;
    theme: string;
    updateInfo: UpdateInfo | null;
    getMessageTokens: (message: Message) => number;
    tune?: TuneConfig;
    developmentMode?: DevelopmentMode;
}
//# sourceMappingURL=app.d.ts.map