import { default as React } from 'react';
import { PromptDefinition, UseMcpOptions } from 'react-mcp-hook';
export type McpServerId = string;
export type ToolPreferenceMap = Record<string, boolean>;
export type StoredMcpServer = UseMcpOptions & {
    serverName?: string;
    toolPreferences?: ToolPreferenceMap;
    serverEnabled?: boolean;
    cachedPrompts?: PromptDefinition[];
    cachedPromptsUpdatedAt?: number;
};
export interface McpServerEntry {
    id: McpServerId;
    options: StoredMcpServer;
}
interface McpServersState {
    order: McpServerId[];
    byId: Record<McpServerId, StoredMcpServer>;
    selectedId: McpServerId | null;
}
export interface McpServersProviderProps {
    children: React.ReactNode;
    /** Optional list used to merge into the store on mount and when updated. */
    initialServers?: McpServerEntry[];
    /** Local storage key used to persist data. */
    storageKey?: string;
}
export interface McpServersContextValue {
    state: McpServersState;
    servers: McpServerEntry[];
    addServer: (options: StoredMcpServer, id?: McpServerId) => McpServerId;
    updateServer: (id: McpServerId, options: StoredMcpServer) => void;
    removeServer: (id: McpServerId) => void;
    selectServer: (id: McpServerId | null) => void;
    clearServers: () => void;
    getServer: (id: McpServerId) => StoredMcpServer | undefined;
    setServerEnabled: (id: McpServerId, enabled: boolean) => void;
    setToolEnabled: (id: McpServerId, toolName: string, enabled: boolean) => void;
    isToolEnabled: (id: McpServerId, toolName: string) => boolean;
    setServerPrompts: (id: McpServerId, prompts: PromptDefinition[] | undefined) => void;
}
declare const McpServersContext: React.Context<McpServersContextValue | undefined>;
export declare const McpServersProvider: React.FC<McpServersProviderProps>;
export declare const useMcpServers: () => McpServersContextValue;
export default McpServersContext;
//# sourceMappingURL=McpContext.d.ts.map