index.d.mts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. import * as vue from 'vue';
  2. import { ComponentPropsOptions, ExtractPropTypes, PropType } from 'vue';
  3. interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
  4. filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
  5. }
  6. type ClassValue = any;
  7. interface srcObject {
  8. src?: string;
  9. srcset?: string;
  10. lazySrc?: string;
  11. aspect: number;
  12. }
  13. declare const VImg: {
  14. new (...args: any[]): vue.CreateComponentPublicInstance<{
  15. inline: boolean;
  16. absolute: boolean;
  17. transition: string | boolean | (vue.TransitionProps & {
  18. component?: vue.Component;
  19. });
  20. style: vue.StyleValue;
  21. eager: boolean;
  22. options: IntersectionObserverInit;
  23. cover: boolean;
  24. src: string | srcObject;
  25. tile: boolean;
  26. } & {
  27. height?: string | number | undefined;
  28. width?: string | number | undefined;
  29. aspectRatio?: string | number | undefined;
  30. color?: string | undefined;
  31. maxHeight?: string | number | undefined;
  32. maxWidth?: string | number | undefined;
  33. minHeight?: string | number | undefined;
  34. minWidth?: string | number | undefined;
  35. position?: string | undefined;
  36. draggable?: boolean | "false" | "true" | undefined;
  37. class?: any;
  38. alt?: string | undefined;
  39. referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
  40. crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
  41. sizes?: string | undefined;
  42. srcset?: string | undefined;
  43. rounded?: string | number | boolean | undefined;
  44. contentClass?: any;
  45. gradient?: string | undefined;
  46. lazySrc?: string | undefined;
  47. } & {
  48. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  49. default?: (() => vue.VNodeChild) | undefined;
  50. placeholder?: (() => vue.VNodeChild) | undefined;
  51. error?: (() => vue.VNodeChild) | undefined;
  52. sources?: (() => vue.VNodeChild) | undefined;
  53. };
  54. 'v-slots'?: {
  55. default?: false | (() => vue.VNodeChild) | undefined;
  56. placeholder?: false | (() => vue.VNodeChild) | undefined;
  57. error?: false | (() => vue.VNodeChild) | undefined;
  58. sources?: false | (() => vue.VNodeChild) | undefined;
  59. } | undefined;
  60. } & {
  61. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  62. "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
  63. "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
  64. "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
  65. } & {
  66. onError?: ((value: string | undefined) => any) | undefined;
  67. onLoad?: ((value: string | undefined) => any) | undefined;
  68. onLoadstart?: ((value: string | undefined) => any) | undefined;
  69. }, {
  70. currentSrc: vue.ShallowRef<string>;
  71. image: vue.Ref<HTMLImageElement | undefined>;
  72. state: vue.ShallowRef<"error" | "loaded" | "idle" | "loading">;
  73. naturalWidth: vue.ShallowRef<number | undefined>;
  74. naturalHeight: vue.ShallowRef<number | undefined>;
  75. }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
  76. loadstart: (value: string | undefined) => true;
  77. load: (value: string | undefined) => true;
  78. error: (value: string | undefined) => true;
  79. }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
  80. inline: boolean;
  81. absolute: boolean;
  82. transition: string | boolean | (vue.TransitionProps & {
  83. component?: vue.Component;
  84. });
  85. style: vue.StyleValue;
  86. eager: boolean;
  87. options: IntersectionObserverInit;
  88. cover: boolean;
  89. src: string | srcObject;
  90. tile: boolean;
  91. } & {
  92. height?: string | number | undefined;
  93. width?: string | number | undefined;
  94. aspectRatio?: string | number | undefined;
  95. color?: string | undefined;
  96. maxHeight?: string | number | undefined;
  97. maxWidth?: string | number | undefined;
  98. minHeight?: string | number | undefined;
  99. minWidth?: string | number | undefined;
  100. position?: string | undefined;
  101. draggable?: boolean | "false" | "true" | undefined;
  102. class?: any;
  103. alt?: string | undefined;
  104. referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
  105. crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
  106. sizes?: string | undefined;
  107. srcset?: string | undefined;
  108. rounded?: string | number | boolean | undefined;
  109. contentClass?: any;
  110. gradient?: string | undefined;
  111. lazySrc?: string | undefined;
  112. } & {
  113. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  114. default?: (() => vue.VNodeChild) | undefined;
  115. placeholder?: (() => vue.VNodeChild) | undefined;
  116. error?: (() => vue.VNodeChild) | undefined;
  117. sources?: (() => vue.VNodeChild) | undefined;
  118. };
  119. 'v-slots'?: {
  120. default?: false | (() => vue.VNodeChild) | undefined;
  121. placeholder?: false | (() => vue.VNodeChild) | undefined;
  122. error?: false | (() => vue.VNodeChild) | undefined;
  123. sources?: false | (() => vue.VNodeChild) | undefined;
  124. } | undefined;
  125. } & {
  126. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  127. "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
  128. "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
  129. "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
  130. } & {
  131. onError?: ((value: string | undefined) => any) | undefined;
  132. onLoad?: ((value: string | undefined) => any) | undefined;
  133. onLoadstart?: ((value: string | undefined) => any) | undefined;
  134. }, {
  135. inline: boolean;
  136. absolute: boolean;
  137. transition: string | boolean | (vue.TransitionProps & {
  138. component?: vue.Component;
  139. });
  140. style: vue.StyleValue;
  141. draggable: boolean | "false" | "true";
  142. eager: boolean;
  143. options: IntersectionObserverInit;
  144. cover: boolean;
  145. src: string | srcObject;
  146. rounded: string | number | boolean;
  147. tile: boolean;
  148. }, true, {}, vue.SlotsType<Partial<{
  149. default: () => vue.VNode[];
  150. placeholder: () => vue.VNode[];
  151. error: () => vue.VNode[];
  152. sources: () => vue.VNode[];
  153. }>>, {
  154. P: {};
  155. B: {};
  156. D: {};
  157. C: {};
  158. M: {};
  159. Defaults: {};
  160. }, {
  161. inline: boolean;
  162. absolute: boolean;
  163. transition: string | boolean | (vue.TransitionProps & {
  164. component?: vue.Component;
  165. });
  166. style: vue.StyleValue;
  167. eager: boolean;
  168. options: IntersectionObserverInit;
  169. cover: boolean;
  170. src: string | srcObject;
  171. tile: boolean;
  172. } & {
  173. height?: string | number | undefined;
  174. width?: string | number | undefined;
  175. aspectRatio?: string | number | undefined;
  176. color?: string | undefined;
  177. maxHeight?: string | number | undefined;
  178. maxWidth?: string | number | undefined;
  179. minHeight?: string | number | undefined;
  180. minWidth?: string | number | undefined;
  181. position?: string | undefined;
  182. draggable?: boolean | "false" | "true" | undefined;
  183. class?: any;
  184. alt?: string | undefined;
  185. referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
  186. crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
  187. sizes?: string | undefined;
  188. srcset?: string | undefined;
  189. rounded?: string | number | boolean | undefined;
  190. contentClass?: any;
  191. gradient?: string | undefined;
  192. lazySrc?: string | undefined;
  193. } & {
  194. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  195. default?: (() => vue.VNodeChild) | undefined;
  196. placeholder?: (() => vue.VNodeChild) | undefined;
  197. error?: (() => vue.VNodeChild) | undefined;
  198. sources?: (() => vue.VNodeChild) | undefined;
  199. };
  200. 'v-slots'?: {
  201. default?: false | (() => vue.VNodeChild) | undefined;
  202. placeholder?: false | (() => vue.VNodeChild) | undefined;
  203. error?: false | (() => vue.VNodeChild) | undefined;
  204. sources?: false | (() => vue.VNodeChild) | undefined;
  205. } | undefined;
  206. } & {
  207. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  208. "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
  209. "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
  210. "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
  211. } & {
  212. onError?: ((value: string | undefined) => any) | undefined;
  213. onLoad?: ((value: string | undefined) => any) | undefined;
  214. onLoadstart?: ((value: string | undefined) => any) | undefined;
  215. }, {
  216. currentSrc: vue.ShallowRef<string>;
  217. image: vue.Ref<HTMLImageElement | undefined>;
  218. state: vue.ShallowRef<"error" | "loaded" | "idle" | "loading">;
  219. naturalWidth: vue.ShallowRef<number | undefined>;
  220. naturalHeight: vue.ShallowRef<number | undefined>;
  221. }, {}, {}, {}, {
  222. inline: boolean;
  223. absolute: boolean;
  224. transition: string | boolean | (vue.TransitionProps & {
  225. component?: vue.Component;
  226. });
  227. style: vue.StyleValue;
  228. draggable: boolean | "false" | "true";
  229. eager: boolean;
  230. options: IntersectionObserverInit;
  231. cover: boolean;
  232. src: string | srcObject;
  233. rounded: string | number | boolean;
  234. tile: boolean;
  235. }>;
  236. __isFragment?: never;
  237. __isTeleport?: never;
  238. __isSuspense?: never;
  239. } & vue.ComponentOptionsBase<{
  240. inline: boolean;
  241. absolute: boolean;
  242. transition: string | boolean | (vue.TransitionProps & {
  243. component?: vue.Component;
  244. });
  245. style: vue.StyleValue;
  246. eager: boolean;
  247. options: IntersectionObserverInit;
  248. cover: boolean;
  249. src: string | srcObject;
  250. tile: boolean;
  251. } & {
  252. height?: string | number | undefined;
  253. width?: string | number | undefined;
  254. aspectRatio?: string | number | undefined;
  255. color?: string | undefined;
  256. maxHeight?: string | number | undefined;
  257. maxWidth?: string | number | undefined;
  258. minHeight?: string | number | undefined;
  259. minWidth?: string | number | undefined;
  260. position?: string | undefined;
  261. draggable?: boolean | "false" | "true" | undefined;
  262. class?: any;
  263. alt?: string | undefined;
  264. referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
  265. crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
  266. sizes?: string | undefined;
  267. srcset?: string | undefined;
  268. rounded?: string | number | boolean | undefined;
  269. contentClass?: any;
  270. gradient?: string | undefined;
  271. lazySrc?: string | undefined;
  272. } & {
  273. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  274. default?: (() => vue.VNodeChild) | undefined;
  275. placeholder?: (() => vue.VNodeChild) | undefined;
  276. error?: (() => vue.VNodeChild) | undefined;
  277. sources?: (() => vue.VNodeChild) | undefined;
  278. };
  279. 'v-slots'?: {
  280. default?: false | (() => vue.VNodeChild) | undefined;
  281. placeholder?: false | (() => vue.VNodeChild) | undefined;
  282. error?: false | (() => vue.VNodeChild) | undefined;
  283. sources?: false | (() => vue.VNodeChild) | undefined;
  284. } | undefined;
  285. } & {
  286. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  287. "v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
  288. "v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
  289. "v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
  290. } & {
  291. onError?: ((value: string | undefined) => any) | undefined;
  292. onLoad?: ((value: string | undefined) => any) | undefined;
  293. onLoadstart?: ((value: string | undefined) => any) | undefined;
  294. }, {
  295. currentSrc: vue.ShallowRef<string>;
  296. image: vue.Ref<HTMLImageElement | undefined>;
  297. state: vue.ShallowRef<"error" | "loaded" | "idle" | "loading">;
  298. naturalWidth: vue.ShallowRef<number | undefined>;
  299. naturalHeight: vue.ShallowRef<number | undefined>;
  300. }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
  301. loadstart: (value: string | undefined) => true;
  302. load: (value: string | undefined) => true;
  303. error: (value: string | undefined) => true;
  304. }, string, {
  305. inline: boolean;
  306. absolute: boolean;
  307. transition: string | boolean | (vue.TransitionProps & {
  308. component?: vue.Component;
  309. });
  310. style: vue.StyleValue;
  311. draggable: boolean | "false" | "true";
  312. eager: boolean;
  313. options: IntersectionObserverInit;
  314. cover: boolean;
  315. src: string | srcObject;
  316. rounded: string | number | boolean;
  317. tile: boolean;
  318. }, {}, string, vue.SlotsType<Partial<{
  319. default: () => vue.VNode[];
  320. placeholder: () => vue.VNode[];
  321. error: () => vue.VNode[];
  322. sources: () => vue.VNode[];
  323. }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
  324. transition: {
  325. type: PropType<string | boolean | (vue.TransitionProps & {
  326. component?: vue.Component;
  327. })>;
  328. default: string;
  329. validator: (val: unknown) => boolean;
  330. };
  331. rounded: {
  332. type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
  333. default: undefined;
  334. };
  335. tile: BooleanConstructor;
  336. class: PropType<ClassValue>;
  337. style: {
  338. type: PropType<vue.StyleValue>;
  339. default: null;
  340. };
  341. height: (StringConstructor | NumberConstructor)[];
  342. maxHeight: (StringConstructor | NumberConstructor)[];
  343. maxWidth: (StringConstructor | NumberConstructor)[];
  344. minHeight: (StringConstructor | NumberConstructor)[];
  345. minWidth: (StringConstructor | NumberConstructor)[];
  346. width: (StringConstructor | NumberConstructor)[];
  347. aspectRatio: (StringConstructor | NumberConstructor)[];
  348. contentClass: null;
  349. inline: BooleanConstructor;
  350. absolute: BooleanConstructor;
  351. alt: StringConstructor;
  352. cover: BooleanConstructor;
  353. color: StringConstructor;
  354. draggable: {
  355. type: PropType<boolean | "true" | "false">;
  356. default: undefined;
  357. };
  358. eager: BooleanConstructor;
  359. gradient: StringConstructor;
  360. lazySrc: StringConstructor;
  361. options: {
  362. type: PropType<IntersectionObserverInit>;
  363. default: () => {
  364. root: undefined;
  365. rootMargin: undefined;
  366. threshold: undefined;
  367. };
  368. };
  369. sizes: StringConstructor;
  370. src: {
  371. type: PropType<string | srcObject>;
  372. default: string;
  373. };
  374. crossorigin: PropType<"" | "anonymous" | "use-credentials">;
  375. referrerpolicy: PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
  376. srcset: StringConstructor;
  377. position: StringConstructor;
  378. }, vue.ExtractPropTypes<{
  379. transition: {
  380. type: PropType<string | boolean | (vue.TransitionProps & {
  381. component?: vue.Component;
  382. })>;
  383. default: string;
  384. validator: (val: unknown) => boolean;
  385. };
  386. rounded: {
  387. type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
  388. default: undefined;
  389. };
  390. tile: BooleanConstructor;
  391. class: PropType<ClassValue>;
  392. style: {
  393. type: PropType<vue.StyleValue>;
  394. default: null;
  395. };
  396. height: (StringConstructor | NumberConstructor)[];
  397. maxHeight: (StringConstructor | NumberConstructor)[];
  398. maxWidth: (StringConstructor | NumberConstructor)[];
  399. minHeight: (StringConstructor | NumberConstructor)[];
  400. minWidth: (StringConstructor | NumberConstructor)[];
  401. width: (StringConstructor | NumberConstructor)[];
  402. aspectRatio: (StringConstructor | NumberConstructor)[];
  403. contentClass: null;
  404. inline: BooleanConstructor;
  405. absolute: BooleanConstructor;
  406. alt: StringConstructor;
  407. cover: BooleanConstructor;
  408. color: StringConstructor;
  409. draggable: {
  410. type: PropType<boolean | "true" | "false">;
  411. default: undefined;
  412. };
  413. eager: BooleanConstructor;
  414. gradient: StringConstructor;
  415. lazySrc: StringConstructor;
  416. options: {
  417. type: PropType<IntersectionObserverInit>;
  418. default: () => {
  419. root: undefined;
  420. rootMargin: undefined;
  421. threshold: undefined;
  422. };
  423. };
  424. sizes: StringConstructor;
  425. src: {
  426. type: PropType<string | srcObject>;
  427. default: string;
  428. };
  429. crossorigin: PropType<"" | "anonymous" | "use-credentials">;
  430. referrerpolicy: PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
  431. srcset: StringConstructor;
  432. position: StringConstructor;
  433. }>>;
  434. type VImg = InstanceType<typeof VImg>;
  435. export { VImg };