import { Icons } from '@/src/atoms/icon/types';
import { GenericProps } from '@/src/utilities';
export declare type IModal = GenericProps & {
    /**
     * Allows the user to set the icon used for the close button. Default is `Xmark`.
     */
    icon?: Icons;
    /**
     * Sets if the Modal will close when clicking the fade outside of the white area.
     * Setting to `false` allows the user to close the Modal when clicking outside of the white area.
     * Setting to `true` disables the above functionality.
     *
     * Default is `false`.
     */
    isPersistent?: boolean;
    /**
     * Sets if the Modal has a close button or not.
     * If this is set to `false`, and `isPersistent` is set to `true`, you need to provide an exit trigger in the children of Modal using `onCancel`.
     *
     * Default is `true`.
     */
    isCloseable?: boolean;
    /**
     * Sets if the Modal is visible or not.
     *
     * Default is `false`.
     */
    isVisible?: boolean;
    /**
     * Allows the user to set the Title of the Modal. Default is `an empty string`.
     */
    modalTitle?: React.ReactNode;
    /**
     * Allows the user to set the Subtitle of the Modal. Default is `an empty string`.
     */
    modalSubtitle?: React.ReactNode;
    /**
     * Allows the user to set which side the Modal appears on. Default is `right`.
     */
    modalPosition?: 'left' | 'right' | 'center';
    /**
     * Allows the user to set which side the close icon appears on. Default is `right`.
     */
    iconPosition?: 'left' | 'right';
    /**
     * Specifies a function that will be executed when the user clicks on the close button icon. Can be set to custom child elements.
     * Without any specific function the modal will remain open.
     *
     * Default is `an empty object`.
     */
    onCancel?: () => void;
    /**
     * Specifies the children of the Modal. Default is `an empty object`.
     */
    children?: React.ReactNode;
    /**
     * Specifies the footer content of the Modal
     */
    footerContent?: React.ReactNode;
};
