import React from 'react';
import { CustomCommandExecutor } from '../custom-commands/executor.js';
import { CustomCommandLoader } from '../custom-commands/loader.js';
import { ToolManager } from '../tools/tool-manager.js';
import type { CustomCommand } from '../types/commands.js';
import { LLMClient, LSPConnectionStatus, MCPConnectionStatus } from '../types/core.js';
import type { UpdateInfo } from '../types/index.js';
interface UseAppInitializationProps {
    setClient: (client: LLMClient | null) => void;
    setCurrentModel: (model: string) => void;
    setCurrentProvider: (provider: string) => void;
    setToolManager: (manager: ToolManager | null) => void;
    setCustomCommandLoader: (loader: CustomCommandLoader | null) => void;
    setCustomCommandExecutor: (executor: CustomCommandExecutor | null) => void;
    setCustomCommandCache: (cache: Map<string, CustomCommand>) => void;
    setStartChat: (start: boolean) => void;
    setMcpInitialized: (initialized: boolean) => void;
    setUpdateInfo: (info: UpdateInfo | null) => void;
    setMcpServersStatus: (status: MCPConnectionStatus[]) => void;
    setLspServersStatus: (status: LSPConnectionStatus[]) => void;
    setPreferencesLoaded: (loaded: boolean) => void;
    setCustomCommandsCount: (count: number) => void;
    addToChatQueue: (component: React.ReactNode) => void;
    getNextComponentKey: () => number;
    customCommandCache: Map<string, CustomCommand>;
    setActiveMode: (mode: import('../hooks/useAppState.js').ActiveMode) => void;
    cliProvider?: string;
    cliModel?: string;
}
export declare function useAppInitialization({ setClient, setCurrentModel, setCurrentProvider, setToolManager, setCustomCommandLoader, setCustomCommandExecutor, setCustomCommandCache: _setCustomCommandCache, setStartChat, setMcpInitialized, setUpdateInfo, setMcpServersStatus, setLspServersStatus, setPreferencesLoaded, setCustomCommandsCount, addToChatQueue, getNextComponentKey, customCommandCache, setActiveMode, cliProvider, cliModel, }: UseAppInitializationProps): {
    initializeClient: (preferredProvider?: string, preferredModel?: string) => Promise<void>;
    loadCustomCommands: (loader: CustomCommandLoader) => void;
    initializeMCPServers: (toolManager: ToolManager) => Promise<void>;
    reinitializeMCPServers: (toolManager: ToolManager) => Promise<void>;
    initializeLSPServers: () => Promise<void>;
};
export {};
//# sourceMappingURL=useAppInitialization.d.ts.map