import GlobalState from './GlobalState';
import GlobalStateProvider, { getGlobalState, getSsrContext } from './GlobalStateProvider';
import SsrContext from './SsrContext';
import useAsyncCollection, { type UseAsyncCollectionI, type UseAsyncCollectionResT } from './useAsyncCollection';
import { type AsyncDataEnvelopeT, type AsyncDataLoaderT, type AsyncDataReloaderT, type LoadAsyncDataI, type UseAsyncDataI, type UseAsyncDataOptionsT, type UseAsyncDataResT, loadAsyncData, newAsyncDataEnvelope, useAsyncData } from './useAsyncData';
import useGlobalState, { type UseGlobalStateI } from './useGlobalState';
export type { AsyncCollectionLoaderT, AsyncCollectionReloaderT, AsyncCollectionT, } from './useAsyncCollection';
export type { SetterT, UseGlobalStateResT } from './useGlobalState';
export type { ForceT, ValueOrInitializerT } from './utils';
export { type AsyncDataEnvelopeT, type AsyncDataLoaderT, type AsyncDataReloaderT, GlobalState, GlobalStateProvider, SsrContext, type UseAsyncCollectionI, type UseAsyncCollectionResT, type UseAsyncDataI, type UseAsyncDataOptionsT, type UseAsyncDataResT, type UseGlobalStateI, getGlobalState, getSsrContext, loadAsyncData, newAsyncDataEnvelope, useAsyncCollection, useAsyncData, useGlobalState, };
interface API<StateT, SsrContextT extends SsrContext<StateT> = SsrContext<StateT>> {
    GlobalState: typeof GlobalState<StateT, SsrContextT>;
    GlobalStateProvider: typeof GlobalStateProvider<StateT, SsrContextT>;
    SsrContext: typeof SsrContext<StateT>;
    getGlobalState: typeof getGlobalState<StateT, SsrContextT>;
    getSsrContext: typeof getSsrContext<SsrContextT>;
    loadAsyncData: LoadAsyncDataI<StateT>;
    newAsyncDataEnvelope: typeof newAsyncDataEnvelope;
    useAsyncCollection: UseAsyncCollectionI<StateT>;
    useAsyncData: UseAsyncDataI<StateT>;
    useGlobalState: UseGlobalStateI<StateT>;
}
export declare function withGlobalStateType<StateT, SsrContextT extends SsrContext<StateT> = SsrContext<StateT>>(): API<StateT, SsrContextT>;
