import { type ReactNode } from 'react';
import { Zero, type BaseDefaultContext, type BaseDefaultSchema, type CustomMutatorDefs, type DefaultContext, type DefaultSchema, type ZeroOptions } from './zero.ts';
export declare const ZeroContext: import("react").Context<Zero<any, any, any> | undefined>;
export declare function useZero<S extends BaseDefaultSchema = DefaultSchema, MD extends CustomMutatorDefs | undefined = undefined, Context extends BaseDefaultContext = DefaultContext>(): Zero<S, MD, Context>;
/**
 * @deprecated Use {@linkcode useZero} instead, alongside default types defined with:
 *
 * ```ts
 * declare module '@rocicorp/zero' {
 *   interface DefaultTypes {
 *     schema: typeof schema;
 *     context: Context;
 *   }
 * }
 */
export declare function createUseZero<S extends BaseDefaultSchema = DefaultSchema, MD extends CustomMutatorDefs | undefined = undefined, Context extends BaseDefaultContext = DefaultContext>(): () => Zero<S, MD, Context>;
export type ZeroProviderProps<S extends BaseDefaultSchema = DefaultSchema, MD extends CustomMutatorDefs | undefined = undefined, Context extends BaseDefaultContext = DefaultContext> = (ZeroOptions<S, MD, Context> | {
    zero: Zero<S, MD, Context>;
}) & {
    init?: (zero: Zero<S, MD, Context>) => void;
    children: ReactNode;
};
export declare function ZeroProvider<S extends BaseDefaultSchema = DefaultSchema, MD extends CustomMutatorDefs | undefined = undefined, Context extends BaseDefaultContext = DefaultContext>({ children, init, ...props }: ZeroProviderProps<S, MD, Context>): import("react/jsx-runtime").JSX.Element | undefined;
//# sourceMappingURL=zero-provider.d.ts.map