import * as React_2 from 'react'; /** * @internal */ export declare type Context = React_2.Context & { Provider: React_2.FC>; Consumer: never; }; export declare type ContextSelector = (value: Value) => SelectedValue; /** * @internal */ export declare type ContextValue = { /** Holds a set of subscribers from components. */ listeners: ((payload: readonly [ContextVersion, Value]) => void)[]; /** Holds an actual value of React's context that will be propagated down for computations. */ value: React_2.MutableRefObject; /** A version field is used to sync a context value and consumers. */ version: React_2.MutableRefObject; }; /** * @internal */ export declare type ContextValues = ContextValue & { /** List of listners to publish changes */ listeners: ((payload: readonly [ContextVersion, Record]) => void)[]; }; /** * @internal */ export declare type ContextVersion = number; /** * @internal */ export declare const createContext: (defaultValue: Value) => Context; /** * @internal * This hook returns context selected value by selector. * It will only accept context created by `createContext`. * It will trigger re-render if only the selected value is referentially changed. */ export declare const useContextSelector: (context: Context, selector: ContextSelector) => SelectedValue; /** * @internal * Utility hook for contexts created by react-context-selector to determine if a parent context exists * WARNING: This hook will not work for native React contexts * * @param context - context created by react-context-selector * @returns whether the hook is wrapped by a parent context */ export declare function useHasParentContext(context: Context): boolean; export { }