import { OverridesStyleRules } from '@mui/material/styles/overrides';
import { DialogSlots } from './slots';
import { Theme, DialogProps as MUIDialogProps } from '@mui/material';
import { DIALOG_KEY_COMPONENT } from './constants';
import { ComponentPalletColor } from '@m4l/styles';
/**
 * Type representing the possible slots for the `Dialog` component.
 *
 * Used to define and manage slot-based styling for the dialog.
 */
export type DialogType = keyof typeof DialogSlots;
/**
 * Interface representing the main properties of the `Dialog` component.
 *
 * Defines the structure and functionality of the dialog component, including its variant, color,
 * data test ID, and other attributes. It extends Material-UI's native `DialogProps`.
 *
 * - **variant** (optional) - The visual style of the dialog, currently supporting `'standard'`.
 * - **color** (optional) - Defines the theme color of the dialog, limited to `'default'`.
 * - **dataTestId** (optional) - Identifier used for automated testing.
 *
 * ### Example:
 * ```typescript
 * const dialogProps: DialogProps = {
 *   variant: 'standard',
 *   color: 'default',
 *   dataTestId: 'test-dialog',
 * };
 * ```
 */
export interface DialogProps extends MUIDialogProps {
    variant?: 'standard';
    color?: Extract<ComponentPalletColor, 'default'>;
    dataTestId?: string;
    fullScreen?: boolean;
    isCloseable?: boolean | undefined;
    closeModal?: () => void;
}
/**
 * Owner state (`ownerState`) for the `Dialog` component.
 *
 * Defines properties that affect the styles and behavior of the dialog component.
 * - **dialogVariant** (optional) - Specifies the style variant of the dialog (`'standard'`).
 * - **dialogColor** (optional) - The color palette applied to the dialog (`'default'`).
 * - **dialogDataTestId** (optional) - Identifier for automated testing.
 * - **dialogFullScreen** (optional) - Indicates whether the dialog occupies the entire screen.
 */
export type DialogOwnerState = Pick<DialogProps, 'variant'> & {
    dialogVariant?: DialogProps['variant'];
    dialogColor?: DialogProps['color'];
    dialogDataTestId?: DialogProps['dataTestId'];
    dialogFullScreen?: DialogProps['fullScreen'];
};
/**
 * Type for defining custom styles for the `Dialog` component.
 *
 * Allows overriding default styles for each slot of the `Dialog` component using MUI's `OverridesStyleRules`.
 * - **DialogType** - Represents the style overrides for the component slots.
 * - **DIALOG_KEY_COMPONENT** - Key used to register the `Dialog` component with the theme.
 * - **Theme** - The theme object containing styling information.
 */
export type DialogStyles = OverridesStyleRules<DialogType, typeof DIALOG_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map