image.d.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /// <reference types="react" />
  2. declare const VALID_LOADING_VALUES: readonly ["lazy", "eager", undefined];
  3. declare type LoadingValue = typeof VALID_LOADING_VALUES[number];
  4. export declare type ImageLoader = (p: ImageLoaderProps) => string;
  5. export declare type ImageLoaderProps = {
  6. src: string;
  7. width: number;
  8. quality?: number;
  9. };
  10. declare type PlaceholderValue = 'blur' | 'empty';
  11. declare type OnLoadingComplete = (img: HTMLImageElement) => void;
  12. export interface StaticImageData {
  13. src: string;
  14. height: number;
  15. width: number;
  16. blurDataURL?: string;
  17. blurWidth?: number;
  18. blurHeight?: number;
  19. }
  20. interface StaticRequire {
  21. default: StaticImageData;
  22. }
  23. declare type StaticImport = StaticRequire | StaticImageData;
  24. export declare type ImageProps = Omit<JSX.IntrinsicElements['img'], 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'> & {
  25. src: string | StaticImport;
  26. alt: string;
  27. width?: number | string;
  28. height?: number | string;
  29. fill?: boolean;
  30. loader?: ImageLoader;
  31. quality?: number | string;
  32. priority?: boolean;
  33. loading?: LoadingValue;
  34. placeholder?: PlaceholderValue;
  35. blurDataURL?: string;
  36. unoptimized?: boolean;
  37. onLoadingComplete?: OnLoadingComplete;
  38. };
  39. export default function Image({ src, sizes, unoptimized, priority, loading, className, quality, width, height, fill, style, onLoadingComplete, placeholder, blurDataURL, ...all }: ImageProps): JSX.Element;
  40. export {};