import { CSSProperties, HTMLAttributes, ImgHTMLAttributes, ReactElement, ReactNode } from 'react';
export interface ImagePreviewActionProps extends Omit, 'content'> {
key: string;
content: ReactNode;
name?: string;
disabled?: boolean;
}
export interface ImagePreviewProps {
style?: CSSProperties;
className?: string | string[];
src?: string;
extra?: Omit, 'src'>;
visible?: boolean;
defaultVisible?: boolean;
maskClosable?: boolean;
closable?: boolean;
actions?: ImagePreviewActionProps[];
actionsLayout?: string[];
scales?: number[];
defaultScale?: number;
onVisibleChange?: (visible: boolean, preVisible: boolean) => void;
getPopupContainer?: () => HTMLElement;
escToExit?: boolean;
imageRender?: (originalNode: ReactElement) => ReactElement;
zIndex?: number;
}
export type PartialImagePreviewProps = Partial;
export interface ImagePreviewGroupProps extends Omit {
items?: string[];
current?: number;
defaultCurrent?: number;
loop?: boolean;
forceRender?: boolean;
onChange?: (index: number) => void;
}
interface ImageBaseProps extends Omit, HTMLImageElement>, 'title' | 'content'> {
title?: React.ReactNode;
description?: React.ReactNode;
actions?: ReactNode[];
preview?: boolean | ImagePreviewProps;
src?: string;
error?: React.ReactNode;
motion?: boolean;
delay?: number;
placeholder?: boolean | string | React.ReactNode;
content?: React.ReactNode;
onError?: (e: any) => void;
onLoad?: (e: any) => void;
}
export type ObserverImageProps = {
lazy: boolean | IntersectionObserverInit;
} & ImageBaseProps;
export type ImageProps = Partial;
export {};