import { default as ElIcon } from './ElIcon.vue'; import { default as ElButton } from './ElButton.vue'; export interface ElModalProps { size?: ElModalSize; color?: ElModalColor; headerIcon: InstanceType['$props']; title: string; description?: string; /** Opt-in: on mobile touch devices, hide header and/or actions while an input/textarea in the body is focused. */ hideOnFocus?: { header?: boolean; actions?: boolean; }; /** Opt-in: on touch devices, align modal to top (items-start mt-2) instead of center. Avoids keyboard shifting. */ alignTopOnTouchDevice?: boolean; primaryAction: Omit['$props'], 'size' | 'variant'>; secondaryAction?: Omit['$props'], 'size' | 'variant'>; tertiaryAction?: Omit['$props'], 'size' | 'variant'>; } export declare const elModalSizes: readonly ["xs", "m", "l", "xl"]; export type ElModalSize = (typeof elModalSizes)[number]; export declare const elModalSizesBreakpoints: { xs: number; m: number; l: number; xl: number; }; export declare const elModalColors: readonly ["primary", "secondary", "error"]; export type ElModalColor = (typeof elModalColors)[number]; declare const _default: __VLS_WithTemplateSlots; }; size: { type: import('vue').PropType<"xs" | "xl" | "l" | "m">; default: string; }; title: { type: import('vue').PropType; required: true; default: undefined; }; color: { type: import('vue').PropType<"primary" | "secondary" | "error">; default: string; }; description: { type: import('vue').PropType; default: undefined; }; headerIcon: { type: import('vue').PropType & Omit<{ readonly name: import('./ElIcon.vue').IconNames; readonly color?: ("pink" | "yellow" | "orange" | "cyan" | "rose" | "green" | "brand-blue" | "brand-green" | "red" | "purple" | "indigo") | undefined; readonly solid?: boolean | undefined; readonly disabled?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; required: true; }; color: { type: import('vue').PropType<"pink" | "yellow" | "orange" | "cyan" | "rose" | "green" | "brand-blue" | "brand-green" | "red" | "purple" | "indigo">; }; solid: { type: import('vue').PropType; }; disabled: { type: import('vue').PropType; }; }>>, never>>; required: true; }; hideOnFocus: { type: import('vue').PropType<{ header?: boolean; actions?: boolean; }>; default: undefined; }; alignTopOnTouchDevice: { type: import('vue').PropType; default: boolean; }; primaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; required: true; }; secondaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; default: undefined; }; tertiaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; default: undefined; }; }, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { closed: () => void; }, string, import('vue').PublicProps, Readonly; }; size: { type: import('vue').PropType<"xs" | "xl" | "l" | "m">; default: string; }; title: { type: import('vue').PropType; required: true; default: undefined; }; color: { type: import('vue').PropType<"primary" | "secondary" | "error">; default: string; }; description: { type: import('vue').PropType; default: undefined; }; headerIcon: { type: import('vue').PropType & Omit<{ readonly name: import('./ElIcon.vue').IconNames; readonly color?: ("pink" | "yellow" | "orange" | "cyan" | "rose" | "green" | "brand-blue" | "brand-green" | "red" | "purple" | "indigo") | undefined; readonly solid?: boolean | undefined; readonly disabled?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; required: true; }; color: { type: import('vue').PropType<"pink" | "yellow" | "orange" | "cyan" | "rose" | "green" | "brand-blue" | "brand-green" | "red" | "purple" | "indigo">; }; solid: { type: import('vue').PropType; }; disabled: { type: import('vue').PropType; }; }>>, never>>; required: true; }; hideOnFocus: { type: import('vue').PropType<{ header?: boolean; actions?: boolean; }>; default: undefined; }; alignTopOnTouchDevice: { type: import('vue').PropType; default: boolean; }; primaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; required: true; }; secondaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; default: undefined; }; tertiaryAction: { type: import('vue').PropType unknown) | (() => Promise); disabled: boolean; icon: import('./ElIcon.vue').ElIconProps; error: boolean; dark: boolean; loading: boolean; variant: import('./ElButton.vue').ElButtonVariant; loadOnClick: boolean; }> & Omit<{ readonly type: "button" | "reset" | "submit"; readonly size: import('./ElButton.vue').ElButtonSize; readonly label: string; readonly disabled: boolean; readonly error: boolean; readonly dark: boolean; readonly loading: boolean; readonly variant: import('./ElButton.vue').ElButtonVariant; readonly loadOnClick: boolean; readonly onClick?: ((() => unknown) | (() => Promise)) | undefined; readonly icon?: import('./ElIcon.vue').ElIconProps | undefined; readonly iconRight?: boolean | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly; default: string; }; size: { type: import('vue').PropType<"xs" | "sm" | "xl" | "base" | "l">; default: string; }; label: { type: import('vue').PropType; required: true; default: string; }; onClick: { type: import('vue').PropType<(() => unknown) | (() => Promise)>; default: undefined; }; disabled: { type: import('vue').PropType; default: boolean; }; icon: { type: import('vue').PropType; default: undefined; }; error: { type: import('vue').PropType; default: boolean; }; dark: { type: import('vue').PropType; default: boolean; }; loading: { type: import('vue').PropType; default: boolean; }; iconRight: { type: import('vue').PropType; }; variant: { type: import('vue').PropType<"primary" | "secondary" | "tertiary">; default: string; }; loadOnClick: { type: import('vue').PropType; default: boolean; }; }>>, "type" | "size" | "label" | "onClick" | "disabled" | "icon" | "error" | "dark" | "loading" | "variant" | "loadOnClick">, "size" | "variant">>; default: undefined; }; }>> & { onClosed?: (() => any) | undefined; }, { size: ElModalSize; title: string; color: ElModalColor; description: string; hideOnFocus: { header?: boolean; actions?: boolean; }; alignTopOnTouchDevice: boolean; secondaryAction: Omit["$props"], "size" | "variant">; tertiaryAction: Omit["$props"], "size" | "variant">; }, {}>, { default?(_: {}): any; }>; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };