import ReactExports from 'react';
import { ReactNode } from 'react';
import { StoreApi } from 'zustand';
type UseContextStore<S extends StoreApi<unknown>> = {
    (): ExtractState<S>;
    <U>(selector: (state: ExtractState<S>) => U, equalityFn?: (a: U, b: U) => boolean): U;
};
type ExtractState<S> = S extends {
    getState: () => infer T;
} ? T : never;
type WithoutCallSignature<T> = {
    [K in keyof T]: T[K];
};
/**
 * @deprecated Use `createStore` and `useStore` for context usage
 */
declare function createContext<S extends StoreApi<unknown>>(): {
    Provider: ({ createStore, children, }: {
        createStore: () => S;
        children: ReactNode;
    }) => ReactExports.FunctionComponentElement<ReactExports.ProviderProps<S | undefined>>;
    useStore: UseContextStore<S>;
    useStoreApi: () => WithoutCallSignature<S>;
};
export default createContext;