import { CSSProperties } from 'react';
import { DetailedHTMLProps } from 'react';
import { HTMLAttributes } from 'react';
import { JSX } from 'react/jsx-runtime';
import { JSX as JSX_2 } from 'react';
import { ReactNode } from 'react';

export declare const Component: (props: ModalProps) => JSX.Element;

export declare type ContainerProps = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
    type?: ContentType;
    children: ReactNode;
};

declare type ContentType = '' | 'header' | 'body' | 'footer';

export declare const Modal: ModalObject;

declare type ModalItemProps = {
    style?: CSSProperties;
    className?: string;
    children: ReactNode;
};

export declare type ModalObject = {
    ({}: ModalProps): JSX_2.Element;
    Head: ({}: ModalItemProps) => JSX_2.Element;
    Body: ({}: ModalItemProps) => JSX_2.Element;
    Foot: ({}: ModalItemProps) => JSX_2.Element;
};

export declare interface ModalProps {
    show: boolean;
    backdrop?: boolean;
    movable?: boolean;
    keepMount?: boolean;
    shakeClass?: string;
    style?: CSSProperties;
    className?: string;
    children: ReactNode;
    size?: 'sm' | 'md' | 'lg' | 'xl' | 'fs';
    position?: 'top' | 'center' | 'bottom' | 'left-top' | 'left-center' | 'left-bottom' | 'right-top' | 'right-center' | 'right-bottom';
    onFirstOpen?: () => void;
    onOpen?: () => void;
    onClose?: () => void;
}

export { }
