/**
 * Main Fluid SDK Provider
 * Wraps QueryClientProvider and FluidThemeProvider
 */
import { type ReactNode } from "react";
import { QueryClient } from "@tanstack/react-query";
import type { FluidSDKConfig } from "../types/config";
import type { ThemeDefinition } from "../types/theme";
/**
 * Context value for FluidProvider.
 * All properties are readonly since context values should not be mutated by consumers.
 */
interface FluidContextValue {
    /** SDK configuration */
    readonly config: FluidSDKConfig;
}
export interface FluidProviderProps {
    /** SDK configuration (baseUrl, auth, etc.) */
    config: FluidSDKConfig;
    /** React children */
    children: ReactNode;
    /** Optional custom QueryClient instance */
    queryClient?: QueryClient;
    /** Optional initial theme */
    initialTheme?: ThemeDefinition;
    /** Optional container for scoped theme application */
    themeContainer?: HTMLElement | null;
    /** Optional custom widget registry (defaults to all built-in widgets) */
    widgetRegistry?: Record<string, React.ComponentType<any>>;
    /** Dynamic variables for data source endpoint path substitution (e.g., { rep_id: "123" }) */
    variables?: Record<string, string>;
}
/**
 * Main provider for the Fluid Portal SDK
 *
 * @example
 * ```tsx
 * function App() {
 *   return (
 *     <FluidProvider
 *       config={{ baseUrl: "" }}
 *     >
 *       <YourApp />
 *     </FluidProvider>
 *   );
 * }
 * ```
 */
export declare function FluidProvider({ config, children, queryClient, initialTheme, themeContainer, widgetRegistry, variables }: FluidProviderProps): React.JSX.Element;
/**
 * Hook to access the Fluid context
 * Must be used within a FluidProvider
 */
export declare function useFluidContext(): FluidContextValue;
export {};
//# sourceMappingURL=FluidProvider.d.ts.map