import React from 'react';
import { CustomCommandExecutor } from '../custom-commands/executor.js';
import { CustomCommandLoader } from '../custom-commands/loader.js';
import type { Task } from '../tools/tasks/types.js';
import type { CheckpointListItem, DevelopmentMode, ImageAttachment, LLMClient, LSPConnectionStatus, MCPConnectionStatus, Message } from '../types/index.js';
import type { CustomCommand } from '../types/commands.js';
import type { TuneConfig } from '../types/config.js';
import type { ThemePreset } from '../types/ui.js';
import type { UpdateInfo } from '../types/utils.js';
interface UseAppHandlersProps {
    messages: Message[];
    currentProvider: string;
    currentProviderConfig: import('../types/config.js').AIProviderConfig | null;
    currentModel: string;
    currentTheme: ThemePreset;
    developmentMode: DevelopmentMode;
    tune: TuneConfig | undefined;
    abortController: AbortController | null;
    updateInfo: UpdateInfo | null;
    mcpServersStatus: MCPConnectionStatus[] | undefined;
    lspServersStatus: LSPConnectionStatus[];
    preferencesLoaded: boolean;
    customCommandsCount: number;
    customCommandCache: Map<string, CustomCommand>;
    customCommandLoader: CustomCommandLoader | null;
    customCommandExecutor: CustomCommandExecutor | null;
    updateMessages: (newMessages: Message[]) => void;
    setIsCancelling: (value: boolean) => void;
    setDevelopmentMode: (updater: DevelopmentMode | ((prev: DevelopmentMode) => DevelopmentMode)) => void;
    setIsConversationComplete: (value: boolean) => void;
    setIsToolExecuting: (value: boolean) => void;
    setActiveMode: (mode: import('../hooks/useAppState.js').ActiveMode) => void;
    setCheckpointLoadData: (value: {
        checkpoints: CheckpointListItem[];
        currentMessageCount: number;
    } | null) => void;
    setShowAllSessions: (value: boolean) => void;
    setCurrentSessionId: (value: string | null) => void;
    setSessionName: (value: string) => void;
    setCurrentProvider: (value: string) => void;
    setCurrentModel: (value: string) => void;
    setLiveTaskList: (value: Task[] | null) => void;
    addToChatQueue: (component: React.ReactNode) => void;
    setChatComponents: (components: React.ReactNode[]) => void;
    setLiveComponent: (component: React.ReactNode) => void;
    client: LLMClient | null;
    getMessageTokens: (message: Message) => number;
    enterModelSelectionMode: () => void;
    enterModelDatabaseMode: () => void;
    enterConfigWizardMode: () => void;
    enterSettingsMode: () => void;
    enterMcpWizardMode: () => void;
    enterExplorerMode: () => void;
    enterIdeSelectionMode: () => void;
    enterTune: () => void;
    handleChatMessage: (message: string, displayValue?: string) => Promise<void>;
    dismissActiveEditor?: () => void;
}
export interface AppHandlers {
    clearMessages: () => Promise<void>;
    handleCancel: () => void;
    handleToggleDevelopmentMode: () => void;
    handleShowStatus: () => void;
    handleCheckpointSelect: (checkpointName: string, createBackup: boolean) => Promise<void>;
    handleCheckpointCancel: () => void;
    enterSessionSelectorMode: (showAll?: boolean) => void;
    handleSessionSelect: (sessionId: string) => Promise<void>;
    handleSessionCancel: () => void;
    enterCheckpointLoadMode: (checkpoints: CheckpointListItem[], currentMessageCount: number) => void;
    handleMessageSubmit: (message: string, displayValue?: string, images?: ImageAttachment[]) => Promise<void>;
}
/**
 * Consolidates all app handler setup into a single hook
 */
export declare function useAppHandlers(props: UseAppHandlersProps): AppHandlers;
export {};
//# sourceMappingURL=useAppHandlers.d.ts.map