import type { CSSProperties, ComponentPublicInstance, TeleportProps } from 'vue'; import type { Interceptor } from 'xzx-design/es/utils'; import type { ImagePreviewItemProps, ImagePreviewProps, PopupCloseIconPosition, SwipeToOptions } from 'xzx-design/es/components'; export type ImagePreviewOptions = { loop?: boolean; images: string[]; maxZoom?: number; minZoom?: number; vertical?: boolean; teleport?: TeleportProps['to']; className?: unknown; showIndex?: boolean; closeable?: boolean; closeIcon?: string; transition?: string; beforeClose?: Interceptor; doubleScale?: boolean; overlayStyle?: CSSProperties; overlayClass?: unknown; swipeDuration?: number; startPosition?: number; showIndicators?: boolean; closeOnPopstate?: boolean; closeIconPosition?: PopupCloseIconPosition; closeOnClickImage?: boolean; closeOnClickOverlay?: boolean; onClose?(): void; onScale?(args: { scale: number; index: number; }): void; onChange?(index: number): void; }; export type ImagePreviewScaleEventParams = { scale: number; index: number; }; type ImagePreviewItemExpose = { resetScale: () => void; }; export type ImagePreviewItemInstance = ComponentPublicInstance; export type ImagePreviewExpose = { resetScale: () => void; swipeTo: (index: number, options?: SwipeToOptions) => void; }; export type ImagePreviewInstance = ComponentPublicInstance; export type ImagePreviewThemeVars = { imagePreviewIndexTextColor?: string; imagePreviewIndexFontSize?: string; imagePreviewIndexLineHeight?: number | string; imagePreviewIndexTextShadow?: string; imagePreviewOverlayBackground?: string; imagePreviewCloseIconSize?: string; imagePreviewCloseIconColor?: string; imagePreviewCloseIconMargin?: string; imagePreviewCloseIconZIndex?: number | string; }; export {};