import React from 'react';
import { InvokeChatAgentHandlers, AssistantStreamState, ChatMessage, ChatMessageInput, ChatAttachment, ToolApprovalInterruptionDetails } from '../hooks/useChatAgent';
export type { ChatMessage } from '../hooks/useChatAgent';
import type { ModelContextValue } from './ModelContext';
import { McpServersContextValue } from './McpContext';
import type { ChatSessionMetadata, SessionCreationOptions, SessionMetadataUpdate } from '../types/chatSessions';
export interface ChatContextValue {
    chatHistory: ChatMessage[];
    currentAssistantResponse: AssistantStreamState;
    isStreaming: boolean;
    isCancelling: boolean;
    canCancel: boolean;
    sendMessage: (input: string | ChatMessageInput, handlers?: InvokeChatAgentHandlers) => Promise<string>;
    cancelMessage: () => boolean;
    clearHistory: () => void;
    cacheAttachment: (attachment: ChatAttachment) => void;
    removeAttachment: (attachmentId: string) => void;
    pendingInterruptions: ToolApprovalInterruptionDetails[];
    hasPendingInterruptions: boolean;
    pendingRunId: string | null;
    approveInterruption: (interruptionId: string) => ToolApprovalInterruptionDetails;
    rejectInterruption: (interruptionId: string, reason?: string) => ToolApprovalInterruptionDetails;
    resumePendingRun: (handlers?: InvokeChatAgentHandlers) => Promise<string>;
    sessionId: string;
    sessions: ChatSessionMetadata[];
    previousSessions: ChatSessionMetadata[];
    startNewSession: (options?: SessionCreationOptions) => string;
    resumeSession: (sessionId: string) => void;
    deleteSession: (sessionId: string) => void;
    updateSessionMetadata: (sessionId: string, updates: SessionMetadataUpdate) => void;
    clearAllSessions: () => void;
}
import type { ProviderToolDefinition } from '../lib/providers';
export type AdditionalToolDefinition = ProviderToolDefinition;
interface ChatProviderProps {
    children: React.ReactNode;
    modelContext: ModelContextValue;
    mcpContext: McpServersContextValue;
}
export declare const ChatProvider: React.FC<ChatProviderProps>;
export declare const useChatContext: () => ChatContextValue;
//# sourceMappingURL=ChatContext.d.ts.map