import { ReactNode } from 'react';
import { RoochClient, NetworkType } from '@roochnetwork/rooch-sdk';
import { NetworkConfig } from '../hooks/index.js';
export type NetworkConfigs<T extends NetworkConfig | RoochClient = NetworkConfig | RoochClient> = Record<string, T>;
export interface ClientProviderContext {
    client: RoochClient;
    networks: NetworkConfigs;
    network: NetworkType;
    config: NetworkConfig | null;
    selectNetwork: (network: string) => void;
}
export declare const ClientContext: import("react").Context<ClientProviderContext | null>;
export type RoochClientProviderProps<T extends NetworkConfigs> = {
    networks?: NetworkConfigs;
    onNetworkChange?: (network: keyof T & string) => void;
    children: ReactNode;
} & ({
    defaultNetwork?: keyof T & string;
    network?: never;
} | {
    defaultNetwork?: never;
    network?: keyof T & string;
});
export declare function RoochClientProvider<T extends NetworkConfigs>(props: RoochClientProviderProps<T>): import("react/jsx-runtime.js").JSX.Element;
