import React, { ReactNode } from 'react';
import { Style } from 'inlines';
type UseModalProps = {
    open: boolean;
    setOpen: React.Dispatch<React.SetStateAction<boolean>>;
};
export declare const useModal: () => UseModalProps;
export type ModalRootProps = {
    children: ReactNode;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
};
export declare function Root({ children, open: openProp, onOpenChange, }: ModalRootProps): React.JSX.Element;
export type ModalTriggerProps = {
    children: ReactNode;
};
export declare function Trigger({ children }: ModalTriggerProps): React.JSX.Element;
export type ModalContentProps = {
    children: (({ open, close }: {
        open: boolean;
        close: () => void;
    }) => ReactNode) | ReactNode;
    width?: string | number;
    style?: Style;
    onEscapeKeyDown?: () => void;
    onPointerDownOutside?: () => void;
};
export declare function Content({ children, width, style, onEscapeKeyDown, onPointerDownOutside, }: ModalContentProps): React.JSX.Element;
export type ModalWarningProps = {
    type?: 'warning' | 'alert' | 'info';
    children?: ReactNode;
    style?: Style;
};
export declare const Warning: ({ type, children, style, }: ModalWarningProps) => React.JSX.Element;
export type ModalTitleProps = {
    children: ReactNode;
};
export declare function Title({ children }: ModalTitleProps): React.JSX.Element;
export type ModalDescriptionProps = {
    children: string | ReactNode;
};
export declare function Description({ children }: ModalDescriptionProps): React.JSX.Element;
export type ModalBodyProps = {
    children: ReactNode;
};
export declare function Body({ children }: ModalBodyProps): React.JSX.Element;
export type ModalActionsProps = {
    children: ReactNode;
};
export declare function Actions({ children }: ModalActionsProps): React.JSX.Element;
export type ModalConfirmationProps = {
    title: ReactNode;
    description?: ReactNode;
    label?: ReactNode;
    type?: 'info' | 'warning' | 'alert';
    action?: {
        action: (e: any) => void;
        label: string;
    };
};
export declare function Confirmation({ title, description, label, type, action, }: ModalConfirmationProps): React.JSX.Element;
export {};
