import { Reducer } from 'react'; import { Initializer, SyncDispatch } from './useRefState'; export declare type Normalizer = (props: P, lastState: S) => S; declare type Keyof = keyof { [K in keyof P as S extends P[K] ? K : never]: unknown; }; interface UseControllableValue { (props: P, key: Keyof, initArg: Initializer): [S, SyncDispatch]; (props: P, key: Keyof, reducer: Reducer, initial: S): [ S, SyncDispatch ]; (props: P, key: Keyof, reducer: Reducer, initArg: I, initializer: (i: I) => S): [S, SyncDispatch]; (props: P, normalize: Normalizer, initArg: Initializer): [S, SyncDispatch]; (props: P, normalize: Normalizer, reducer: Reducer, initial: S): [ S, SyncDispatch ]; (props: P, normalize: Normalizer, reducer: Reducer, initArg: I, initializer: (i: I) => S): [S, SyncDispatch]; } declare const _default: UseControllableValue; export default _default;