import { default as React } from 'react';
import { ChatIdentity } from './ChatRuntime';
export type { ChatIdentity };
interface ChatProviderProps {
    /** Base URL for the LangGraph API endpoint */
    apiUrl: string;
    /** Unique identifier for the assistant/agent to communicate with */
    assistantId: string;
    /** User and organization identity information */
    identity?: ChatIdentity | null;
    /** Child components that will have access to chat context */
    children: React.ReactNode;
    /** Optional custom React components to render in chat messages */
    customComponents?: Record<string, React.FunctionComponent | React.ComponentClass>;
    /**
     * Fallback UI shown while the chat providers are lazy-loading.
     * Defaults to a plain `<div>Loading chat...</div>` if not provided.
     */
    suspenseFallback?: React.ReactNode;
    /**
     * Initial thread mode. Use `"multi"` to enable thread history and switching.
     * Defaults to `"single"` (one conversation, no history panel).
     */
    initialMode?: "single" | "multi";
}
/**
 * Main provider component that wraps all chat-related contexts.
 * This is the recommended way to set up the chat system as it includes all necessary providers
 * in the correct order: Runtime, Thread, Stream, Suggestions, Custom Components, and File handling.
 *
 * @example
 * ```tsx
 * // Single-thread mode (default)
 * <ChatProvider
 *   apiUrl="https://api.example.com"
 *   assistantId="my-assistant"
 *   identity={{ user_id: "user123", org_id: "org456" }}
 * >
 *   <YourChatUI />
 * </ChatProvider>
 *
 * // Multi-thread mode (enables thread history)
 * <ChatProvider
 *   apiUrl="https://api.example.com"
 *   assistantId="my-assistant"
 *   identity={{ user_id: "user123", org_id: "org456" }}
 *   initialMode="multi"
 * >
 *   <YourChatUI />
 * </ChatProvider>
 * ```
 */
export declare function ChatProvider({ apiUrl, assistantId, identity, children, customComponents, suspenseFallback, initialMode, }: ChatProviderProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ChatProvider.d.ts.map