import { ChatState } from '@/components/SynapseChat/useChatState';
import { GridAgentSessionContext } from '@sage-bionetworks/synapse-client';
import { AgentAccessLevel, AgentSession, TraceEvent } from '@sage-bionetworks/synapse-types';
export type SynapseChatProps = {
    initialMessage?: string;
    agentRegistrationId?: string;
    chatbotName?: string;
    hideTitle?: boolean;
    textboxPositionOffset?: string;
    sessionContext?: GridAgentSessionContext;
    externalSession?: AgentSession;
    setExternalSession?: (s: AgentSession | undefined) => void;
    externalChatState?: ChatState;
    defaultAgentAccessLevel?: AgentAccessLevel;
    showAccessLevelMenu?: boolean;
    /**
     * Optional callback invoked once when a chat response is received from the server.
     * Use this for side effects such as navigation based on the response content.
     * Called in the mutation onSuccess handler so it runs exactly once per response.
     */
    onChatResponse?: (responseText: string) => void;
};
export type ChatInteraction = {
    userMessage: string;
    chatResponseText?: string;
    chatErrorReason?: string;
    chatResponseTrace?: TraceEventWithFriendlyMessage[];
};
export type TraceEventWithFriendlyMessage = {
    friendlyMessage?: string;
} & TraceEvent;
export declare function SynapseChat({ initialMessage, agentRegistrationId, chatbotName, hideTitle, textboxPositionOffset, sessionContext, externalSession, setExternalSession, externalChatState, showAccessLevelMenu, onChatResponse, }: SynapseChatProps): import("react/jsx-runtime").JSX.Element;
export default SynapseChat;
//# sourceMappingURL=SynapseChat.d.ts.map