import { DialogContentProps } from '@radix-ui/react-dialog';
import { AllHTMLAttributes, ReactNode } from 'react';
import { PaperProps } from '../Paper/Paper.types.js';
import { Positions } from './Dialog.constants.js';
import '../constants-QFINMz1u.js';
import '../Paper/Paper.constants.js';

type CombinedRefs = {
    container: HTMLDivElement | null;
    content: HTMLDivElement | null;
    trigger: HTMLElement | null;
};
interface DialogProps extends AllHTMLAttributes<HTMLDivElement> {
    children: ReactNode;
    closeButtonLabel?: string;
    condensed?: boolean;
    contentClassName?: string;
    defaultOpen?: boolean;
    disabled?: boolean;
    dismissable?: boolean;
    fullWidth?: boolean;
    modal?: boolean;
    open?: boolean;
    overlayStyle?: 'dark' | 'light' | 'none';
    position?: `${Positions}`;
    root?: Partial<AllHTMLAttributes<HTMLDivElement>>;
    scrollbarOnHover?: boolean;
    title?: string;
    trigger?: ReactNode;
    wrapper?: Partial<PaperProps>;
    onClose?: () => void;
    onDismiss?: () => void;
    onInteractOutside?: DialogContentProps['onInteractOutside'];
    onOpen?: () => void;
    onPointerDownOutside?: DialogContentProps['onPointerDownOutside'];
    onToggle?: (open: boolean) => void;
}

export type { CombinedRefs, DialogProps };
