import type { AnyFunction } from '../../types';
import { type ModalOverlayProps } from '../ModalOverlay/ModalOverlay';
export interface UseModalManager {
    id?: string;
    open: boolean;
    keepMounted: boolean;
    modalOverlayTestId?: string;
    noFocusToDialog?: boolean;
    disableModalOverlay?: boolean;
    onOpen?: AnyFunction;
    onOpened?: AnyFunction;
    onClose?: AnyFunction;
    onClosed?: AnyFunction;
}
export interface UseModalManagerResolvedProps {
    id: string;
    open: boolean;
    noFocusToDialog?: boolean;
    disableModalOverlay?: boolean;
    modalOverlayTestId?: string;
    ModalOverlay: React.ComponentType<ModalOverlayProps>;
    onOpen?: AnyFunction;
    onOpened?: AnyFunction;
    onClose?: AnyFunction;
    onClosed?: AnyFunction;
}
export type UseModalManagerResult = {
    mounted: false;
    shouldPreserveSnapPoint: boolean;
    id: UseModalManagerResolvedProps['id'];
} | ({
    mounted: true;
    shouldPreserveSnapPoint: boolean;
} & UseModalManagerResolvedProps);
export declare const useModalManager: ({ id: idProp, open, keepMounted, modalOverlayTestId, noFocusToDialog, disableModalOverlay, onOpen, onOpened, onClose, onClosed, }: UseModalManager) => UseModalManagerResult;
//# sourceMappingURL=useModalManager.d.ts.map