import { mount } from 'lithent'; import type { Renew } from 'lithent'; declare const INJECT: unique symbol; declare const ADDRENEW: unique symbol; export type ContextState = { value: T; [INJECT]: (value: T) => void; [ADDRENEW]: (renewFn: (newValue: T) => boolean) => boolean; }; export type ProviderProps = T extends Record ? { children?: any; } & { [K in keyof T]: ContextState; } : never; type ProviderComponent = ReturnType>>; export type Context = { Provider: ProviderComponent; contextState: (value?: V, renew?: Renew) => ContextState; useContext: (context: Context, renew: Renew, subscribeKeys?: string[]) => T extends Record ? ProviderProps : ContextState; }; declare const providerSymbol: unique symbol; type ProviderPropsInternal = ProviderProps & { [providerSymbol]?: boolean; }; export declare function createContext(): Context; export {};