import { type Component, type Ref } from 'vue'; import '../dialog/dialog.scss'; import { type FmButtonProps } from '../button/FmButton.vue'; import { type InternalStoredFunction } from '../../plugin/dialog-plugin'; export interface FooterActionButton { text: string | null; close: boolean; variant?: FmButtonProps['variant']; type?: FmButtonProps['type']; disabled?: boolean | Ref; isLoading?: boolean | Ref; } export interface FmDynamicDialogProps { /** Appears only if `contentComponent` or `dialogComponent` is not specified */ title: string; /** Appears only if `contentComponent` or `dialogComponent` is not specified */ subTitle?: string; /** Appears only if `contentComponent` or `dialogComponent` is not specified */ message?: string; primaryActions?: FooterActionButton | null; secondaryActions?: FooterActionButton | null; tertiaryActions?: FooterActionButton | null; /** Setting to `true` will result in overlay background */ overlay?: boolean; /** If set to true and `overlay === true`, enables click to dismiss behavior */ dismissAway?: boolean; /** Specify to enable the top right close button */ closeButton?: boolean; /** In case the width doesn't look good */ minWidth?: number | string; /** In case the width doesn't look good */ maxWidth?: number | string; /** In case the height doesn't look good */ maxHeight?: number | string; /** Custom component to replace all of dialog */ dialogComponent?: Component | null; /** Custom component to replace just the content section */ contentComponent?: Component | null; /** Props passed to dialog component */ dialogComponentProps?: any; /** * If set to true, the content will be scrollable * Default: true */ contentScrollable?: boolean; /** Class to be applied to content */ contentClass?: any; /** Props passed to content component */ contentComponentProps?: any; /** * For replacing the content component with a custom component * Only works if `contentComponent` is not specified */ isContentComponent?: any; /** * The props to be passed to the custom content component */ isContentComponentProps?: any; /** Used internally, passed from dialog-plugin */ readonly unmount?: () => void; readonly storedFunctions?: InternalStoredFunction | null; /** zIndex of the dialog */ zIndex?: number; } declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps, { message: string; primaryActions: null; secondaryActions: null; tertiaryActions: null; overlay: boolean; dismissAway: boolean; closeButton: boolean; minWidth: number; dialogComponent: null; dialogComponentProps: null; contentComponent: null; contentScrollable: boolean; contentComponentProps: null; unmount: () => void; storedFunctions: null; zIndex: undefined; }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { "dialog-opened": () => void; "dialog-closed": (mv?: any) => void; }, string, import("vue").PublicProps, Readonly, { message: string; primaryActions: null; secondaryActions: null; tertiaryActions: null; overlay: boolean; dismissAway: boolean; closeButton: boolean; minWidth: number; dialogComponent: null; dialogComponentProps: null; contentComponent: null; contentScrollable: boolean; contentComponentProps: null; unmount: () => void; storedFunctions: null; zIndex: undefined; }>>> & { "onDialog-opened"?: (() => any) | undefined; "onDialog-closed"?: ((mv?: any) => any) | undefined; }, { message: string; zIndex: number; dismissAway: boolean; overlay: boolean; minWidth: string | number; closeButton: boolean; contentScrollable: boolean; primaryActions: FooterActionButton | null; secondaryActions: FooterActionButton | null; tertiaryActions: FooterActionButton | null; dialogComponent: Component | null; contentComponent: Component | null; dialogComponentProps: any; contentComponentProps: any; readonly unmount: () => void; readonly storedFunctions: InternalStoredFunction | null; }, {}>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToRuntimeProps = { [K in keyof T]-?: {} extends Pick ? { type: import('vue').PropType<__VLS_NonUndefinedable>; } : { type: import('vue').PropType; required: true; }; }; type __VLS_WithDefaults = { [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; }; type __VLS_Prettify = { [K in keyof T]: T[K]; } & {};