export type Infer> = T extends StateConstructor ? U : never; export type StateConstructor = ((setInitial?: StateSetter) => T) & { readonly Provider: React.ComponentType<{ children?: React.ReactNode; state?: T; }>; }; export type StateSetter = (state: T) => void; export type SnapshotOptions = { sync?: boolean; }; export declare function defineState(initialValue: () => T): StateConstructor; export declare function defineState(initialValue: T): StateConstructor; export declare function useLocalState(constructor: StateConstructor, options?: StateSetter | (SnapshotOptions & { setInitialValue?: StateSetter; })): T; export declare class Store { private parent?; private states; constructor(parent?: Store | undefined); setState(state: T): void; getState(constructor: StateConstructor): T; } export declare const globalStore: Store; export declare function Provider({ state, children, }: { state: T; children?: React.ReactNode; }): import("react/jsx-runtime").JSX.Element; export declare function useProvidedState(constructor: StateConstructor, snapshotOptions?: SnapshotOptions): T; export declare function usePassedState(state: T, snapshotOptions?: SnapshotOptions): T; export declare function $(state: T): T; export declare function targetOf(state: T): T; export declare function ref(value: T): T extends object ? T & { $$valtioSnapshot: T; } : T;