/**
 * SPDX-FileCopyrightText: © 2021 Liferay, Inc. <https://liferay.com>
 * SPDX-License-Identifier: BSD-3-Clause
 */
/// <reference types="react" />
export declare type InternalDispatch<Value> = ((value: Value) => void) | ((value?: Value) => void) | ((value: Value | (() => Value)) => void) | ((value?: Value | (() => Value)) => void) | React.Dispatch<React.SetStateAction<Value>>;
declare type Props<Value> = {
    defaultName: string;
    handleName: string;
    name: string;
    defaultValue?: Value | (() => Value);
    onChange?: InternalDispatch<Value>;
    value?: Value;
};
export declare function useControlledState<Value>({ defaultName, defaultValue, handleName, name, onChange, value, }: Props<Value>): [Value, InternalDispatch<Value>, boolean];
export {};
