import type { Dispatch } from "react";
import type { UseStateInitializer, UseStateSetter } from "./types.js";
/**
 * @internal
 * @remarks \@since 6.0.0
 */
export interface EnsuredStateOptions<V, Setter extends Dispatch<V> | UseStateSetter<V>> {
    value?: V;
    setValue?: Setter;
    defaultValue?: UseStateInitializer<V>;
}
/**
 * This is used to dynamically allow controlling hooks by providing a `value` +
 * `setValue` or defaulting to uncontrolled behavior with local state.
 *
 * @internal
 * @remarks \@since 6.0.0
 */
export declare function useEnsuredState<V, Setter extends Dispatch<V> | UseStateSetter<V>>(options: EnsuredStateOptions<V, Setter>): readonly [value: V, setValue: Setter];
