/**
 * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ExtractPropTypes, PropType } from 'vue';
import { ModalButton } from './composition/type';
export type DragHandleType = HTMLElement | string;
export declare const modalProps: {
    /**
     * 允许点击遮罩关闭对话框
     */
    allowClickMaskToClose: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 关闭对话框前事件， 是个函数，返回true或者false
     */
    beforeClose: {
        type: FunctionConstructor;
        default: () => boolean;
    };
    /**
     * 自定义类
     */
    class: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 自定义遮罩类
     */
    maskClass: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 模态框标题
     */
    title: {
        type: StringConstructor;
        default: string;
    };
    /**
     * 模态框宽度
     */
    width: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 模态框高度
     */
    height: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 自定义按钮列表
      */
    buttons: {
        type: {
            (arrayLength: number): ModalButton[];
            (...items: ModalButton[]): ModalButton[];
            new (arrayLength: number): ModalButton[];
            new (...items: ModalButton[]): ModalButton[];
            isArray(arg: any): arg is any[];
            readonly prototype: any[];
            from<T>(arrayLike: ArrayLike<T>): T[];
            from<T_1, U>(arrayLike: ArrayLike<T_1>, mapfn: (v: T_1, k: number) => U, thisArg?: any): U[];
            from<T_2>(iterable: Iterable<T_2> | ArrayLike<T_2>): T_2[];
            from<T_3, U_1>(iterable: Iterable<T_3> | ArrayLike<T_3>, mapfn: (v: T_3, k: number) => U_1, thisArg?: any): U_1[];
            of<T_4>(...items: T_4[]): T_4[];
            readonly [Symbol.species]: ArrayConstructor;
        };
        default: never[];
    };
    /**
     * 是否展示模态框
     */
    modelValue: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否模态
     */
    mask: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否展示头部
     */
    showHeader: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否展示默认按钮
     */
    showButtons: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否启用自适应样式
     */
    fitContent: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否展示右上角按钮
     */
    showCloseButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    showMaxButton: {
        type: BooleanConstructor;
        default: boolean;
    };
    minHeight: {
        type: NumberConstructor;
    };
    maxHeight: {
        type: NumberConstructor;
    };
    minWidth: {
        type: NumberConstructor;
    };
    maxWidth: {
        type: NumberConstructor;
    };
    containment: {
        type: PropType<HTMLElement>;
        default: null;
    };
    resizeable: {
        type: BooleanConstructor;
        default: boolean;
    };
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    dragHandle: {
        type: PropType<DragHandleType>;
        default: null;
    };
    closedCallback: {
        type: FunctionConstructor;
        default: null;
    };
    openedCallback: {
        type: FunctionConstructor;
        default: null;
    };
    resizeHandle: {
        type: FunctionConstructor;
        default: null;
    };
    render: {
        type: FunctionConstructor;
        default: null;
    };
    acceptCallback: {
        type: FunctionConstructor;
        default: null;
    };
    rejectCallback: {
        type: FunctionConstructor;
        default: null;
    };
    enableEsc: {
        type: BooleanConstructor;
        default: boolean;
    };
    enableEnter: {
        type: BooleanConstructor;
        default: boolean;
    };
    dialogType: {
        type: StringConstructor;
        default: string;
    };
    src: {
        type: StringConstructor;
        default: string;
    };
    footerHeight: {
        type: NumberConstructor;
        default: number;
    };
    host: {
        type: PropType<DragHandleType>;
        default: string;
    };
    isMessager: {
        type: BooleanConstructor;
        default: boolean;
    };
    maximized: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export type ModalProps = Partial<ExtractPropTypes<typeof modalProps>>;
