import { ReactNode } from 'react';
import { CubeClient } from '../client/CubeClient';
import { CubeQueryOptions, CubeApiOptions } from '../types';
import { BatchCoordinator } from '../client/BatchCoordinator';
interface CubeApiContextValue {
    cubeApi: CubeClient;
    options?: CubeQueryOptions;
    updateApiConfig: (apiOptions: CubeApiOptions, token?: string) => void;
    batchCoordinator: BatchCoordinator | null;
    enableBatching: boolean;
}
interface CubeApiProviderProps {
    apiOptions: CubeApiOptions;
    token?: string;
    options?: CubeQueryOptions;
    enableBatching?: boolean;
    batchDelayMs?: number;
    children: ReactNode;
}
export declare function CubeApiProvider({ apiOptions: initialApiOptions, token: initialToken, options, enableBatching, batchDelayMs, children }: CubeApiProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function useCubeApi(): CubeApiContextValue;
export {};
