import { PropType, VNode, CSSProperties, DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { IDialogChildProps } from '../../vc-dialog/IDialogPropTypes';
import { VueTypeLooseShape, VueTypeValidableDef } from 'vue-types';
export interface PreviewProps extends Omit<IDialogChildProps, 'onClose' | 'mask'> {
    onClose?: (e: Element) => void;
    src?: string;
    alt?: string;
    rootClassName?: string;
    icons?: {
        rotateLeft?: VNode;
        rotateRight?: VNode;
        zoomIn?: VNode;
        zoomOut?: VNode;
        close?: VNode;
        left?: VNode;
        right?: VNode;
        flipX?: VNode;
        flipY?: VNode;
    };
}
export declare const previewProps: {
    src: StringConstructor;
    alt: StringConstructor;
    rootClassName: StringConstructor;
    icons: {
        type: PropType<PreviewProps["icons"]>;
        default: () => PreviewProps["icons"];
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    mask: {
        type: BooleanConstructor;
        default: undefined;
    };
    afterClose: FunctionConstructor;
    closable: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    destroyOnClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    mousePosition: VueTypeLooseShape<{
        x: number;
        y: number;
    }>;
    title: VueTypeValidableDef<any>;
    footer: VueTypeValidableDef<any>;
    transitionName: StringConstructor;
    maskTransitionName: StringConstructor;
    animation: VueTypeValidableDef<any>;
    maskAnimation: VueTypeValidableDef<any>;
    wrapStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    bodyStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    maskStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    prefixCls: StringConstructor;
    wrapClassName: StringConstructor;
    width: (StringConstructor | NumberConstructor)[];
    height: (StringConstructor | NumberConstructor)[];
    zIndex: NumberConstructor;
    bodyProps: VueTypeValidableDef<any>;
    maskProps: VueTypeValidableDef<any>;
    wrapProps: VueTypeValidableDef<any>;
    getContainer: VueTypeValidableDef<any>;
    dialogStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    dialogClass: StringConstructor;
    closeIcon: VueTypeValidableDef<any>;
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    getOpenCount: PropType<() => number>;
    focusTriggerAfterClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>;
    modalRender: FunctionConstructor;
};
declare const Preview: DefineComponent<ExtractPropTypes<{
    src: StringConstructor;
    alt: StringConstructor;
    rootClassName: StringConstructor;
    icons: {
        type: PropType<PreviewProps["icons"]>;
        default: () => PreviewProps["icons"];
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    mask: {
        type: BooleanConstructor;
        default: undefined;
    };
    afterClose: FunctionConstructor;
    closable: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    destroyOnClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    mousePosition: VueTypeLooseShape<{
        x: number;
        y: number;
    }>;
    title: VueTypeValidableDef<any>;
    footer: VueTypeValidableDef<any>;
    transitionName: StringConstructor;
    maskTransitionName: StringConstructor;
    animation: VueTypeValidableDef<any>;
    maskAnimation: VueTypeValidableDef<any>;
    wrapStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    bodyStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    maskStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    prefixCls: StringConstructor;
    wrapClassName: StringConstructor;
    width: (StringConstructor | NumberConstructor)[];
    height: (StringConstructor | NumberConstructor)[];
    zIndex: NumberConstructor;
    bodyProps: VueTypeValidableDef<any>;
    maskProps: VueTypeValidableDef<any>;
    wrapProps: VueTypeValidableDef<any>;
    getContainer: VueTypeValidableDef<any>;
    dialogStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    dialogClass: StringConstructor;
    closeIcon: VueTypeValidableDef<any>;
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    getOpenCount: PropType<() => number>;
    focusTriggerAfterClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>;
    modalRender: FunctionConstructor;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("close" | "afterClose")[], "close" | "afterClose", PublicProps, Readonly< ExtractPropTypes<{
    src: StringConstructor;
    alt: StringConstructor;
    rootClassName: StringConstructor;
    icons: {
        type: PropType<PreviewProps["icons"]>;
        default: () => PreviewProps["icons"];
    };
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    mask: {
        type: BooleanConstructor;
        default: undefined;
    };
    afterClose: FunctionConstructor;
    closable: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    destroyOnClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    mousePosition: VueTypeLooseShape<{
        x: number;
        y: number;
    }>;
    title: VueTypeValidableDef<any>;
    footer: VueTypeValidableDef<any>;
    transitionName: StringConstructor;
    maskTransitionName: StringConstructor;
    animation: VueTypeValidableDef<any>;
    maskAnimation: VueTypeValidableDef<any>;
    wrapStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    bodyStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    maskStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    prefixCls: StringConstructor;
    wrapClassName: StringConstructor;
    width: (StringConstructor | NumberConstructor)[];
    height: (StringConstructor | NumberConstructor)[];
    zIndex: NumberConstructor;
    bodyProps: VueTypeValidableDef<any>;
    maskProps: VueTypeValidableDef<any>;
    wrapProps: VueTypeValidableDef<any>;
    getContainer: VueTypeValidableDef<any>;
    dialogStyle: {
        type: PropType< CSSProperties>;
        default: CSSProperties;
    };
    dialogClass: StringConstructor;
    closeIcon: VueTypeValidableDef<any>;
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    getOpenCount: PropType<() => number>;
    focusTriggerAfterClose: {
        type: BooleanConstructor;
        default: undefined;
    };
    onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>;
    modalRender: FunctionConstructor;
}>> & Readonly<{
    onClose?: ((...args: any[]) => any) | undefined;
    onAfterClose?: ((...args: any[]) => any) | undefined;
}>, {
    mask: boolean;
    visible: boolean;
    closable: boolean;
    forceRender: boolean;
    maskClosable: boolean;
    keyboard: boolean;
    bodyStyle: CSSProperties;
    maskStyle: CSSProperties;
    destroyOnClose: boolean;
    wrapStyle: CSSProperties;
    dialogStyle: CSSProperties;
    focusTriggerAfterClose: boolean;
    icons: {
        rotateLeft?: VNode;
        rotateRight?: VNode;
        zoomIn?: VNode;
        zoomOut?: VNode;
        close?: VNode;
        left?: VNode;
        right?: VNode;
        flipX?: VNode;
        flipY?: VNode;
    } | undefined;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default Preview;
