import { InitialState } from '../misc';
/**
 * Handles open/close or similar boolean states.
 * Mainly aims to improve readability.
 *
 * @example
 * ```tsx
 * const modal = useOpenState()
 * <button onClick={modal.open} />
 * <Modal isOpen={modal.isOpen} />
 * ```
 *
 */
export declare const useOpenState: (initialValue?: InitialState<boolean>) => {
    isOpen: boolean;
    setIsOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>;
    close: () => void;
    open: () => void;
    toggle: () => void;
};
/**
 * Implements a stateful open/closed mechanism that preserves component state between transitions.
 *
 * @remarks
 * This pattern is particularly useful in scenarios requiring:
 * - A boolean flag to control visibility (open/closed state)
 * - Separate state to determine opened entity
 * - Saving state even after closing, which prevents flickering during exit animations
 */
export declare const useStatefulOpenState: <T>(initialStateValue?: T, initialValue?: InitialState<boolean>) => {
    isOpen: boolean;
    close: () => void;
    open: (state: T) => void;
    state: T | undefined;
};
