import { Chat } from "../models/Chat";
import { Conversation, Message } from "../models/Conversation";
import { AgentApiService } from "../api-service";
import type { AdditionalContextProvider } from "../models/AdditionalContext";
export interface UseMaxChatOptions {
    onConversationIdAssignedByStream?: (conversationId: string) => void;
}
export declare function useMaxChat(agentApi: AgentApiService, context: AdditionalContextProvider, options?: UseMaxChatOptions): {
    error: boolean;
    conversationFrozen: boolean;
    loading: boolean;
    isAgentThinking: boolean;
    messages: Chat[];
    hasMoreMessages: boolean;
    loadOlderMessages: () => Promise<void>;
    isLoadingOlderMessages: boolean;
    streamingResponse: string | undefined;
    sendMessage: (message: string, isAppInitiated: boolean, currentAppName?: string) => Promise<boolean>;
    startNewConversation: () => void;
    suggestedMessages: string[];
    loadConversation: (conversationId: string, frozen?: boolean) => Promise<void>;
    conversationList: Conversation[];
    fetchConversationList: () => Promise<void>;
    sendFeedback: (messageId: string, score: string, comment: string) => Promise<void>;
    fetchMessagePair: (messageId: string) => Promise<Message | undefined>;
    retrySendMessage: (messageOverride?: string) => Promise<void>;
    respondToToolApproval: (toolCallId: string, approved: boolean, conversationId?: string) => void;
    messageHasBeenSent: boolean;
    fetchUsageStatus: () => Promise<import("../models/UsageStatus").UserStatus | undefined>;
    doesUserHaveAgentPerms: () => boolean;
};
