import type { AssistantStreamState, ChatAttachment, ChatAttachmentUpload, ChatMessage, ChatMessageInput, InvokeChatAgentHandlers, UseChatAgentOptions, ToolApprovalInterruptionDetails } from './useChatAgent.types';
export type { AssistantStreamState, ChatAttachment, ChatAttachmentUpload, ChatMessage, ChatMessageInput, ChatSession, InvokeChatAgentHandlers, MessageEventDetails, ReasoningEventDetails, ToolCallLifecycleMetadata, ToolCallProgress, UseChatAgentOptions, ChatAttachmentReference, AttachmentReferenceMap, ChatSlashCommandPayload, ToolApprovalInterruptionDetails, ToolApprovalStatus } from './useChatAgent.types';
export declare class ChatAgentCancelledError extends Error {
    constructor(message?: string, options?: {
        cause?: unknown;
    });
}
export declare const isChatAgentCancelledError: (error: unknown) => error is ChatAgentCancelledError;
export declare const useChatAgent: (sessionId: string, options: UseChatAgentOptions) => {
    chatHistory: ChatMessage[];
    pushChatHistory: (message: ChatMessage) => void;
    getChatHistory: () => ChatMessage[];
    invokeChatAgent: (input: string | ChatMessageInput, handlers?: InvokeChatAgentHandlers) => Promise<string>;
    clearChatHistory: () => void;
    currentAssistantResponse: AssistantStreamState;
    isStreaming: boolean;
    isCancelling: boolean;
    canCancel: boolean;
    cancel: () => boolean;
    cacheAttachment: (attachment: ChatAttachment | ChatAttachmentUpload) => 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>;
};
//# sourceMappingURL=index.d.ts.map