import { DsgButtonProps } from './DsgButton.vue';
import { DsgMiscIconProps } from '../Icons/DsgMiscIcon.vue';
/**
 * ------------------------------------------------
 *  # Setup: Props
 * ------------------------------------------------
 */
export type DsgModalFooterType = "horizontal-even" | "horizontal-right" | "horizontal-primary" | "vertical";
export type DsgModalType = "left" | "center" | "horizontal-left";
export interface DsgModalProps {
    title?: string;
    description?: string;
    miscIcon?: DsgMiscIconProps | null;
    hasClosedButton?: boolean;
    initialOpen?: boolean;
    closeClickBackground?: boolean;
    wrapperClasses?: string;
    width?: number;
    type?: DsgModalType;
    footerType?: DsgModalFooterType;
    primaryButton?: DsgButtonProps | false;
    secondaryButton?: DsgButtonProps | false;
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        'dsg-modal__header'?(_: {}): any;
        default?(_: {}): any;
        'dsg-modal__footer'?(_: {}): any;
    };
    refs: {};
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<DsgModalProps, {
    open: () => void;
    close: () => void;
    secondaryButtonClicked: () => void;
    primaryButtonClicked: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
    "before-open": () => any;
    "after-open": () => any;
    "before-close": () => any;
    "after-close": () => any;
    "secondary-button-clicked": () => any;
    "primary-button-clicked": () => any;
}, string, import('vue').PublicProps, Readonly<DsgModalProps> & Readonly<{
    "onBefore-open"?: (() => any) | undefined;
    "onAfter-open"?: (() => any) | undefined;
    "onBefore-close"?: (() => any) | undefined;
    "onAfter-close"?: (() => any) | undefined;
    "onSecondary-button-clicked"?: (() => any) | undefined;
    "onPrimary-button-clicked"?: (() => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
