import type { PromptInstance, PromptMessage } from 'react-mcp-hook';
import type { AdditionalPromptDefinition } from '../../../types/prompts';
import type { McpServerEntry } from '../../../contexts/McpContext';
import type { ChatInputSelectedSlashCommand, ChatInputSlashCommandOption } from '../components/ChatInput';
export interface UseSlashCommandsOptions {
    servers: McpServerEntry[];
    additionalPrompts: AdditionalPromptDefinition[];
    resolvePromptFromServer: (serverId: string, promptName: string, args: Record<string, string>) => Promise<PromptInstance | undefined>;
}
export interface SlashCommandPayload {
    id: string;
    name: string;
    title: string;
    serverId: string;
    serverName?: string;
    description?: string;
    args: Record<string, string>;
    resolvedPrompt?: {
        description?: string;
        messages: PromptMessage[];
    };
}
export interface SlashCommandResolution {
    commandText?: string;
    payload?: SlashCommandPayload;
    resolvedPrompt?: PromptInstance;
}
export interface UseSlashCommandsResult {
    slashCommandOptions: ChatInputSlashCommandOption[];
    resolveForSubmission: (selection: ChatInputSelectedSlashCommand | null) => Promise<SlashCommandResolution>;
}
export declare const useSlashCommands: ({ servers, additionalPrompts, resolvePromptFromServer }: UseSlashCommandsOptions) => UseSlashCommandsResult;
//# sourceMappingURL=useSlashCommands.d.ts.map