import type { VNode, PropType } from 'vue'; import { type IDialogChildProps } from '../../vc-dialog/IDialogPropTypes'; import type { VueNode } from '../../_util/type'; export type PreviewTransformType = { x: number; y: number; rotate: number; scale: number; flipX: boolean; flipY: boolean; }; export type PreviewImgInfo = { url: string; alt?: string; width?: string | number; height?: string | number; }; export type ToolbarRenderInfoType = { icons: { flipYIcon: VueNode; flipXIcon: VueNode; rotateLeftIcon: VueNode; rotateRightIcon: VueNode; zoomOutIcon: VueNode; zoomInIcon: VueNode; }; actions: { onActive?: (index: number) => void; onFlipY: () => void; onFlipX: () => void; onRotateLeft: () => void; onRotateRight: () => void; onZoomOut: () => void; onZoomIn: () => void; onReset: () => void; onClose: () => void; }; transform: PreviewTransformType; current: number; total: number; image: PreviewImgInfo; }; export type ToolbarRender = (originalNode: VueNode, info: ToolbarRenderInfoType) => VueNode; export interface PreviewProps extends Omit { 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; }; /** Custom preview toolbar (antd ≥ 5.7 `toolbarRender`) */ toolbarRender?: ToolbarRender; /** Whether preview image can be moved (antd ≥ 5.8). */ movable?: boolean; /** Custom preview image node (antd ≥ 5.7). */ imageRender?: (originalNode: any, info: { transform: Record; image: Record; }) => any; /** Zoom step (antd ≥ 5.7). Default 0.5. */ scaleStep?: number; /** Min scale (antd ≥ 5.7). Default 1. */ minScale?: number; /** Max scale (antd ≥ 5.7). Default 50. */ maxScale?: number; } export declare const previewProps: { src: StringConstructor; alt: StringConstructor; rootClassName: StringConstructor; icons: { type: PropType<{ rotateLeft?: VNode; rotateRight?: VNode; zoomIn?: VNode; zoomOut?: VNode; close?: VNode; left?: VNode; right?: VNode; flipX?: VNode; flipY?: VNode; }>; default: () => { rotateLeft?: VNode; rotateRight?: VNode; zoomIn?: VNode; zoomOut?: VNode; close?: VNode; left?: VNode; right?: VNode; flipX?: VNode; flipY?: VNode; }; }; toolbarRender: PropType; movable: { type: BooleanConstructor; default: boolean; }; imageRender: PropType<(originalNode: any, info: { transform: Record; image: Record; }) => any>; scaleStep: { type: NumberConstructor; default: number; }; minScale: { type: NumberConstructor; default: number; }; maxScale: { type: NumberConstructor; default: number; }; keyboard: { type: BooleanConstructor; default: any; }; mask: { type: BooleanConstructor; default: any; }; afterClose: FunctionConstructor; afterOpenChange: PropType<(open: boolean) => void>; closable: { type: BooleanConstructor; default: any; }; maskClosable: { type: BooleanConstructor; default: any; }; visible: { type: BooleanConstructor; default: any; }; destroyOnClose: { type: BooleanConstructor; default: any; }; mousePosition: import("vue-types").VueTypeLooseShape<{ x: number; y: number; }>; title: import("vue-types").VueTypeValidableDef; footer: import("vue-types").VueTypeValidableDef; transitionName: StringConstructor; maskTransitionName: StringConstructor; animation: import("vue-types").VueTypeValidableDef; maskAnimation: import("vue-types").VueTypeValidableDef; wrapStyle: { type: PropType; default: import("vue").CSSProperties; }; bodyStyle: { type: PropType; default: import("vue").CSSProperties; }; maskStyle: { type: PropType; default: import("vue").CSSProperties; }; prefixCls: StringConstructor; wrapClassName: StringConstructor; width: (StringConstructor | NumberConstructor)[]; height: (StringConstructor | NumberConstructor)[]; zIndex: NumberConstructor; bodyProps: import("vue-types").VueTypeValidableDef; maskProps: import("vue-types").VueTypeValidableDef; wrapProps: import("vue-types").VueTypeValidableDef; getContainer: import("vue-types").VueTypeValidableDef; dialogStyle: { type: PropType; default: import("vue").CSSProperties; }; dialogClass: StringConstructor; closeIcon: import("vue-types").VueTypeValidableDef; closeIconProps: { type: PropType>; default: any; }; forceRender: { type: BooleanConstructor; default: any; }; getOpenCount: PropType<() => number>; focusTriggerAfterClose: { type: BooleanConstructor; default: any; }; onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>; modalRender: FunctionConstructor; }; declare const Preview: import("vue").DefineComponent; default: () => { rotateLeft?: VNode; rotateRight?: VNode; zoomIn?: VNode; zoomOut?: VNode; close?: VNode; left?: VNode; right?: VNode; flipX?: VNode; flipY?: VNode; }; }; toolbarRender: PropType; movable: { type: BooleanConstructor; default: boolean; }; imageRender: PropType<(originalNode: any, info: { transform: Record; image: Record; }) => any>; scaleStep: { type: NumberConstructor; default: number; }; minScale: { type: NumberConstructor; default: number; }; maxScale: { type: NumberConstructor; default: number; }; keyboard: { type: BooleanConstructor; default: any; }; mask: { type: BooleanConstructor; default: any; }; afterClose: FunctionConstructor; afterOpenChange: PropType<(open: boolean) => void>; closable: { type: BooleanConstructor; default: any; }; maskClosable: { type: BooleanConstructor; default: any; }; visible: { type: BooleanConstructor; default: any; }; destroyOnClose: { type: BooleanConstructor; default: any; }; mousePosition: import("vue-types").VueTypeLooseShape<{ x: number; y: number; }>; title: import("vue-types").VueTypeValidableDef; footer: import("vue-types").VueTypeValidableDef; transitionName: StringConstructor; maskTransitionName: StringConstructor; animation: import("vue-types").VueTypeValidableDef; maskAnimation: import("vue-types").VueTypeValidableDef; wrapStyle: { type: PropType; default: import("vue").CSSProperties; }; bodyStyle: { type: PropType; default: import("vue").CSSProperties; }; maskStyle: { type: PropType; default: import("vue").CSSProperties; }; prefixCls: StringConstructor; wrapClassName: StringConstructor; width: (StringConstructor | NumberConstructor)[]; height: (StringConstructor | NumberConstructor)[]; zIndex: NumberConstructor; bodyProps: import("vue-types").VueTypeValidableDef; maskProps: import("vue-types").VueTypeValidableDef; wrapProps: import("vue-types").VueTypeValidableDef; getContainer: import("vue-types").VueTypeValidableDef; dialogStyle: { type: PropType; default: import("vue").CSSProperties; }; dialogClass: StringConstructor; closeIcon: import("vue-types").VueTypeValidableDef; closeIconProps: { type: PropType>; default: any; }; forceRender: { type: BooleanConstructor; default: any; }; getOpenCount: PropType<() => number>; focusTriggerAfterClose: { type: BooleanConstructor; default: any; }; onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>; modalRender: FunctionConstructor; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("close" | "afterClose")[], "close" | "afterClose", import("vue").PublicProps, Readonly; default: () => { rotateLeft?: VNode; rotateRight?: VNode; zoomIn?: VNode; zoomOut?: VNode; close?: VNode; left?: VNode; right?: VNode; flipX?: VNode; flipY?: VNode; }; }; toolbarRender: PropType; movable: { type: BooleanConstructor; default: boolean; }; imageRender: PropType<(originalNode: any, info: { transform: Record; image: Record; }) => any>; scaleStep: { type: NumberConstructor; default: number; }; minScale: { type: NumberConstructor; default: number; }; maxScale: { type: NumberConstructor; default: number; }; keyboard: { type: BooleanConstructor; default: any; }; mask: { type: BooleanConstructor; default: any; }; afterClose: FunctionConstructor; afterOpenChange: PropType<(open: boolean) => void>; closable: { type: BooleanConstructor; default: any; }; maskClosable: { type: BooleanConstructor; default: any; }; visible: { type: BooleanConstructor; default: any; }; destroyOnClose: { type: BooleanConstructor; default: any; }; mousePosition: import("vue-types").VueTypeLooseShape<{ x: number; y: number; }>; title: import("vue-types").VueTypeValidableDef; footer: import("vue-types").VueTypeValidableDef; transitionName: StringConstructor; maskTransitionName: StringConstructor; animation: import("vue-types").VueTypeValidableDef; maskAnimation: import("vue-types").VueTypeValidableDef; wrapStyle: { type: PropType; default: import("vue").CSSProperties; }; bodyStyle: { type: PropType; default: import("vue").CSSProperties; }; maskStyle: { type: PropType; default: import("vue").CSSProperties; }; prefixCls: StringConstructor; wrapClassName: StringConstructor; width: (StringConstructor | NumberConstructor)[]; height: (StringConstructor | NumberConstructor)[]; zIndex: NumberConstructor; bodyProps: import("vue-types").VueTypeValidableDef; maskProps: import("vue-types").VueTypeValidableDef; wrapProps: import("vue-types").VueTypeValidableDef; getContainer: import("vue-types").VueTypeValidableDef; dialogStyle: { type: PropType; default: import("vue").CSSProperties; }; dialogClass: StringConstructor; closeIcon: import("vue-types").VueTypeValidableDef; closeIconProps: { type: PropType>; default: any; }; forceRender: { type: BooleanConstructor; default: any; }; getOpenCount: PropType<() => number>; focusTriggerAfterClose: { type: BooleanConstructor; default: any; }; onClose: PropType<(e: MouseEvent | KeyboardEvent) => void>; modalRender: FunctionConstructor; }>> & Readonly<{ onClose?: (...args: any[]) => any; onAfterClose?: (...args: any[]) => any; }>, { mask: boolean; visible: boolean; forceRender: boolean; maskClosable: boolean; keyboard: boolean; closable: boolean; bodyStyle: import("vue").CSSProperties; maskStyle: import("vue").CSSProperties; destroyOnClose: boolean; wrapStyle: import("vue").CSSProperties; dialogStyle: import("vue").CSSProperties; closeIconProps: Record; focusTriggerAfterClose: boolean; icons: { rotateLeft?: VNode; rotateRight?: VNode; zoomIn?: VNode; zoomOut?: VNode; close?: VNode; left?: VNode; right?: VNode; flipX?: VNode; flipY?: VNode; }; movable: boolean; scaleStep: number; minScale: number; maxScale: number; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default Preview;