dom.d.ts 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321
  1. // Note: this file is auto concatenated to the end of the bundled d.ts during
  2. // build.
  3. // This code is based on react definition in DefinitelyTyped published under the MIT license.
  4. // Repository: https://github.com/DefinitelyTyped/DefinitelyTyped
  5. // Path in the repository: types/react/index.d.ts
  6. //
  7. // Copyrights of original definition are:
  8. // AssureSign <http://www.assuresign.com>
  9. // Microsoft <https://microsoft.com>
  10. // John Reilly <https://github.com/johnnyreilly>
  11. // Benoit Benezech <https://github.com/bbenezech>
  12. // Patricio Zavolinsky <https://github.com/pzavolinsky>
  13. // Digiguru <https://github.com/digiguru>
  14. // Eric Anderson <https://github.com/ericanderson>
  15. // Dovydas Navickas <https://github.com/DovydasNavickas>
  16. // Josh Rutherford <https://github.com/theruther4d>
  17. // Guilherme Hübner <https://github.com/guilhermehubner>
  18. // Ferdy Budhidharma <https://github.com/ferdaber>
  19. // Johann Rakotoharisoa <https://github.com/jrakotoharisoa>
  20. // Olivier Pascal <https://github.com/pascaloliv>
  21. // Martin Hochel <https://github.com/hotell>
  22. // Frank Li <https://github.com/franklixuefei>
  23. // Jessica Franco <https://github.com/Jessidhia>
  24. // Saransh Kataria <https://github.com/saranshkataria>
  25. // Kanitkorn Sujautra <https://github.com/lukyth>
  26. // Sebastian Silbermann <https://github.com/eps1lon>
  27. import * as CSS from 'csstype'
  28. export interface CSSProperties
  29. extends CSS.Properties<string | number>,
  30. CSS.PropertiesHyphen<string | number> {
  31. /**
  32. * The index signature was removed to enable closed typing for style
  33. * using CSSType. You're able to use type assertion or module augmentation
  34. * to add properties or an index signature of your own.
  35. *
  36. * For examples and more information, visit:
  37. * https://github.com/frenic/csstype#what-should-i-do-when-i-get-type-errors
  38. */
  39. [v: `--${string}`]: string | number | undefined
  40. }
  41. type Booleanish = boolean | 'true' | 'false'
  42. type Numberish = number | string
  43. // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
  44. interface AriaAttributes {
  45. /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
  46. 'aria-activedescendant'?: string
  47. /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
  48. 'aria-atomic'?: Booleanish
  49. /**
  50. * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
  51. * presented if they are made.
  52. */
  53. 'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'
  54. /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
  55. 'aria-busy'?: Booleanish
  56. /**
  57. * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
  58. * @see aria-pressed @see aria-selected.
  59. */
  60. 'aria-checked'?: Booleanish | 'mixed'
  61. /**
  62. * Defines the total number of columns in a table, grid, or treegrid.
  63. * @see aria-colindex.
  64. */
  65. 'aria-colcount'?: Numberish
  66. /**
  67. * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
  68. * @see aria-colcount @see aria-colspan.
  69. */
  70. 'aria-colindex'?: Numberish
  71. /**
  72. * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
  73. * @see aria-colindex @see aria-rowspan.
  74. */
  75. 'aria-colspan'?: Numberish
  76. /**
  77. * Identifies the element (or elements) whose contents or presence are controlled by the current element.
  78. * @see aria-owns.
  79. */
  80. 'aria-controls'?: string
  81. /** Indicates the element that represents the current item within a container or set of related elements. */
  82. 'aria-current'?: Booleanish | 'page' | 'step' | 'location' | 'date' | 'time'
  83. /**
  84. * Identifies the element (or elements) that describes the object.
  85. * @see aria-labelledby
  86. */
  87. 'aria-describedby'?: string
  88. /**
  89. * Identifies the element that provides a detailed, extended description for the object.
  90. * @see aria-describedby.
  91. */
  92. 'aria-details'?: string
  93. /**
  94. * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
  95. * @see aria-hidden @see aria-readonly.
  96. */
  97. 'aria-disabled'?: Booleanish
  98. /**
  99. * Indicates what functions can be performed when a dragged object is released on the drop target.
  100. * @deprecated in ARIA 1.1
  101. */
  102. 'aria-dropeffect'?: 'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup'
  103. /**
  104. * Identifies the element that provides an error message for the object.
  105. * @see aria-invalid @see aria-describedby.
  106. */
  107. 'aria-errormessage'?: string
  108. /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
  109. 'aria-expanded'?: Booleanish
  110. /**
  111. * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
  112. * allows assistive technology to override the general default of reading in document source order.
  113. */
  114. 'aria-flowto'?: string
  115. /**
  116. * Indicates an element's "grabbed" state in a drag-and-drop operation.
  117. * @deprecated in ARIA 1.1
  118. */
  119. 'aria-grabbed'?: Booleanish
  120. /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
  121. 'aria-haspopup'?: Booleanish | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
  122. /**
  123. * Indicates whether the element is exposed to an accessibility API.
  124. * @see aria-disabled.
  125. */
  126. 'aria-hidden'?: Booleanish
  127. /**
  128. * Indicates the entered value does not conform to the format expected by the application.
  129. * @see aria-errormessage.
  130. */
  131. 'aria-invalid'?: Booleanish | 'grammar' | 'spelling'
  132. /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
  133. 'aria-keyshortcuts'?: string
  134. /**
  135. * Defines a string value that labels the current element.
  136. * @see aria-labelledby.
  137. */
  138. 'aria-label'?: string
  139. /**
  140. * Identifies the element (or elements) that labels the current element.
  141. * @see aria-describedby.
  142. */
  143. 'aria-labelledby'?: string
  144. /** Defines the hierarchical level of an element within a structure. */
  145. 'aria-level'?: Numberish
  146. /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
  147. 'aria-live'?: 'off' | 'assertive' | 'polite'
  148. /** Indicates whether an element is modal when displayed. */
  149. 'aria-modal'?: Booleanish
  150. /** Indicates whether a text box accepts multiple lines of input or only a single line. */
  151. 'aria-multiline'?: Booleanish
  152. /** Indicates that the user may select more than one item from the current selectable descendants. */
  153. 'aria-multiselectable'?: Booleanish
  154. /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
  155. 'aria-orientation'?: 'horizontal' | 'vertical'
  156. /**
  157. * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
  158. * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
  159. * @see aria-controls.
  160. */
  161. 'aria-owns'?: string
  162. /**
  163. * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
  164. * A hint could be a sample value or a brief description of the expected format.
  165. */
  166. 'aria-placeholder'?: string
  167. /**
  168. * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
  169. * @see aria-setsize.
  170. */
  171. 'aria-posinset'?: Numberish
  172. /**
  173. * Indicates the current "pressed" state of toggle buttons.
  174. * @see aria-checked @see aria-selected.
  175. */
  176. 'aria-pressed'?: Booleanish | 'mixed'
  177. /**
  178. * Indicates that the element is not editable, but is otherwise operable.
  179. * @see aria-disabled.
  180. */
  181. 'aria-readonly'?: Booleanish
  182. /**
  183. * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
  184. * @see aria-atomic.
  185. */
  186. 'aria-relevant'?: 'additions' | 'additions text' | 'all' | 'removals' | 'text'
  187. /** Indicates that user input is required on the element before a form may be submitted. */
  188. 'aria-required'?: Booleanish
  189. /** Defines a human-readable, author-localized description for the role of an element. */
  190. 'aria-roledescription'?: string
  191. /**
  192. * Defines the total number of rows in a table, grid, or treegrid.
  193. * @see aria-rowindex.
  194. */
  195. 'aria-rowcount'?: Numberish
  196. /**
  197. * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
  198. * @see aria-rowcount @see aria-rowspan.
  199. */
  200. 'aria-rowindex'?: Numberish
  201. /**
  202. * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
  203. * @see aria-rowindex @see aria-colspan.
  204. */
  205. 'aria-rowspan'?: Numberish
  206. /**
  207. * Indicates the current "selected" state of various widgets.
  208. * @see aria-checked @see aria-pressed.
  209. */
  210. 'aria-selected'?: Booleanish
  211. /**
  212. * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
  213. * @see aria-posinset.
  214. */
  215. 'aria-setsize'?: Numberish
  216. /** Indicates if items in a table or grid are sorted in ascending or descending order. */
  217. 'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'
  218. /** Defines the maximum allowed value for a range widget. */
  219. 'aria-valuemax'?: Numberish
  220. /** Defines the minimum allowed value for a range widget. */
  221. 'aria-valuemin'?: Numberish
  222. /**
  223. * Defines the current value for a range widget.
  224. * @see aria-valuetext.
  225. */
  226. 'aria-valuenow'?: Numberish
  227. /** Defines the human readable text alternative of aria-valuenow for a range widget. */
  228. 'aria-valuetext'?: string
  229. }
  230. // Vue's style normalization supports nested arrays
  231. export type StyleValue = string | CSSProperties | Array<StyleValue>
  232. export interface HTMLAttributes extends AriaAttributes, EventHandlers<Events> {
  233. innerHTML?: string
  234. class?: any
  235. style?: StyleValue
  236. // Standard HTML Attributes
  237. accesskey?: string
  238. contenteditable?: Booleanish | 'inherit'
  239. contextmenu?: string
  240. dir?: string
  241. draggable?: Booleanish
  242. hidden?: Booleanish
  243. id?: string
  244. lang?: string
  245. placeholder?: string
  246. spellcheck?: Booleanish
  247. tabindex?: Numberish
  248. title?: string
  249. translate?: 'yes' | 'no'
  250. // Unknown
  251. radiogroup?: string // <command>, <menuitem>
  252. // WAI-ARIA
  253. role?: string
  254. // RDFa Attributes
  255. about?: string
  256. datatype?: string
  257. inlist?: any
  258. prefix?: string
  259. property?: string
  260. resource?: string
  261. typeof?: string
  262. vocab?: string
  263. // Non-standard Attributes
  264. autocapitalize?: string
  265. autocorrect?: string
  266. autosave?: string
  267. color?: string
  268. itemprop?: string
  269. itemscope?: Booleanish
  270. itemtype?: string
  271. itemid?: string
  272. itemref?: string
  273. results?: Numberish
  274. security?: string
  275. unselectable?: 'on' | 'off'
  276. // Living Standard
  277. /**
  278. * Hints at the type of data that might be entered by the user while editing the element or its contents
  279. * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
  280. */
  281. inputmode?:
  282. | 'none'
  283. | 'text'
  284. | 'tel'
  285. | 'url'
  286. | 'email'
  287. | 'numeric'
  288. | 'decimal'
  289. | 'search'
  290. /**
  291. * Specify that a standard HTML element should behave like a defined custom built-in element
  292. * @see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is
  293. */
  294. is?: string
  295. }
  296. type HTMLAttributeReferrerPolicy =
  297. | ''
  298. | 'no-referrer'
  299. | 'no-referrer-when-downgrade'
  300. | 'origin'
  301. | 'origin-when-cross-origin'
  302. | 'same-origin'
  303. | 'strict-origin'
  304. | 'strict-origin-when-cross-origin'
  305. | 'unsafe-url'
  306. export interface AnchorHTMLAttributes extends HTMLAttributes {
  307. download?: any
  308. href?: string
  309. hreflang?: string
  310. media?: string
  311. ping?: string
  312. rel?: string
  313. target?: string
  314. type?: string
  315. referrerpolicy?: HTMLAttributeReferrerPolicy
  316. }
  317. export interface AreaHTMLAttributes extends HTMLAttributes {
  318. alt?: string
  319. coords?: string
  320. download?: any
  321. href?: string
  322. hreflang?: string
  323. media?: string
  324. referrerpolicy?: HTMLAttributeReferrerPolicy
  325. rel?: string
  326. shape?: string
  327. target?: string
  328. }
  329. export interface AudioHTMLAttributes extends MediaHTMLAttributes {}
  330. export interface BaseHTMLAttributes extends HTMLAttributes {
  331. href?: string
  332. target?: string
  333. }
  334. export interface BlockquoteHTMLAttributes extends HTMLAttributes {
  335. cite?: string
  336. }
  337. export interface ButtonHTMLAttributes extends HTMLAttributes {
  338. autofocus?: Booleanish
  339. disabled?: Booleanish
  340. form?: string
  341. formaction?: string
  342. formenctype?: string
  343. formmethod?: string
  344. formnovalidate?: Booleanish
  345. formtarget?: string
  346. name?: string
  347. type?: 'submit' | 'reset' | 'button'
  348. value?: string | string[] | number
  349. }
  350. export interface CanvasHTMLAttributes extends HTMLAttributes {
  351. height?: Numberish
  352. width?: Numberish
  353. }
  354. export interface ColHTMLAttributes extends HTMLAttributes {
  355. span?: Numberish
  356. width?: Numberish
  357. }
  358. export interface ColgroupHTMLAttributes extends HTMLAttributes {
  359. span?: Numberish
  360. }
  361. export interface DataHTMLAttributes extends HTMLAttributes {
  362. value?: string | string[] | number
  363. }
  364. export interface DetailsHTMLAttributes extends HTMLAttributes {
  365. open?: Booleanish
  366. }
  367. export interface DelHTMLAttributes extends HTMLAttributes {
  368. cite?: string
  369. datetime?: string
  370. }
  371. export interface DialogHTMLAttributes extends HTMLAttributes {
  372. open?: Booleanish
  373. }
  374. export interface EmbedHTMLAttributes extends HTMLAttributes {
  375. height?: Numberish
  376. src?: string
  377. type?: string
  378. width?: Numberish
  379. }
  380. export interface FieldsetHTMLAttributes extends HTMLAttributes {
  381. disabled?: Booleanish
  382. form?: string
  383. name?: string
  384. }
  385. export interface FormHTMLAttributes extends HTMLAttributes {
  386. acceptcharset?: string
  387. action?: string
  388. autocomplete?: string
  389. enctype?: string
  390. method?: string
  391. name?: string
  392. novalidate?: Booleanish
  393. target?: string
  394. }
  395. export interface HtmlHTMLAttributes extends HTMLAttributes {
  396. manifest?: string
  397. }
  398. export interface IframeHTMLAttributes extends HTMLAttributes {
  399. allow?: string
  400. allowfullscreen?: Booleanish
  401. allowtransparency?: Booleanish
  402. frameborder?: Numberish
  403. height?: Numberish
  404. marginheight?: Numberish
  405. marginwidth?: Numberish
  406. name?: string
  407. referrerpolicy?: HTMLAttributeReferrerPolicy
  408. sandbox?: string
  409. scrolling?: string
  410. seamless?: Booleanish
  411. src?: string
  412. srcdoc?: string
  413. width?: Numberish
  414. }
  415. export interface ImgHTMLAttributes extends HTMLAttributes {
  416. alt?: string
  417. crossorigin?: 'anonymous' | 'use-credentials' | ''
  418. decoding?: 'async' | 'auto' | 'sync'
  419. height?: Numberish
  420. referrerpolicy?: HTMLAttributeReferrerPolicy
  421. sizes?: string
  422. src?: string
  423. srcset?: string
  424. usemap?: string
  425. width?: Numberish
  426. }
  427. export interface InsHTMLAttributes extends HTMLAttributes {
  428. cite?: string
  429. datetime?: string
  430. }
  431. export interface InputHTMLAttributes extends HTMLAttributes {
  432. accept?: string
  433. alt?: string
  434. autocomplete?: string
  435. autofocus?: Booleanish
  436. capture?: boolean | 'user' | 'environment' // https://www.w3.org/tr/html-media-capture/#the-capture-attribute
  437. checked?: Booleanish | any[] | Set<any> // for IDE v-model multi-checkbox support
  438. crossorigin?: string
  439. disabled?: Booleanish
  440. form?: string
  441. formaction?: string
  442. formenctype?: string
  443. formmethod?: string
  444. formnovalidate?: Booleanish
  445. formtarget?: string
  446. height?: Numberish
  447. indeterminate?: boolean
  448. list?: string
  449. max?: Numberish
  450. maxlength?: Numberish
  451. min?: Numberish
  452. minlength?: Numberish
  453. multiple?: Booleanish
  454. name?: string
  455. pattern?: string
  456. placeholder?: string
  457. readonly?: Booleanish
  458. required?: Booleanish
  459. size?: Numberish
  460. src?: string
  461. step?: Numberish
  462. type?: string
  463. value?: any // we support :value to be bound to anything w/ v-model
  464. width?: Numberish
  465. }
  466. export interface KeygenHTMLAttributes extends HTMLAttributes {
  467. autofocus?: Booleanish
  468. challenge?: string
  469. disabled?: Booleanish
  470. form?: string
  471. keytype?: string
  472. keyparams?: string
  473. name?: string
  474. }
  475. export interface LabelHTMLAttributes extends HTMLAttributes {
  476. for?: string
  477. form?: string
  478. }
  479. export interface LiHTMLAttributes extends HTMLAttributes {
  480. value?: string | string[] | number
  481. }
  482. export interface LinkHTMLAttributes extends HTMLAttributes {
  483. as?: string
  484. crossorigin?: string
  485. href?: string
  486. hreflang?: string
  487. integrity?: string
  488. media?: string
  489. referrerpolicy?: HTMLAttributeReferrerPolicy
  490. rel?: string
  491. sizes?: string
  492. type?: string
  493. }
  494. export interface MapHTMLAttributes extends HTMLAttributes {
  495. name?: string
  496. }
  497. export interface MenuHTMLAttributes extends HTMLAttributes {
  498. type?: string
  499. }
  500. export interface MediaHTMLAttributes extends HTMLAttributes {
  501. autoplay?: Booleanish
  502. controls?: Booleanish
  503. controlslist?: string
  504. crossorigin?: string
  505. loop?: Booleanish
  506. mediagroup?: string
  507. muted?: Booleanish
  508. playsinline?: Booleanish
  509. preload?: string
  510. src?: string
  511. }
  512. export interface MetaHTMLAttributes extends HTMLAttributes {
  513. charset?: string
  514. content?: string
  515. httpequiv?: string
  516. name?: string
  517. }
  518. export interface MeterHTMLAttributes extends HTMLAttributes {
  519. form?: string
  520. high?: Numberish
  521. low?: Numberish
  522. max?: Numberish
  523. min?: Numberish
  524. optimum?: Numberish
  525. value?: string | string[] | number
  526. }
  527. export interface QuoteHTMLAttributes extends HTMLAttributes {
  528. cite?: string
  529. }
  530. export interface ObjectHTMLAttributes extends HTMLAttributes {
  531. classid?: string
  532. data?: string
  533. form?: string
  534. height?: Numberish
  535. name?: string
  536. type?: string
  537. usemap?: string
  538. width?: Numberish
  539. wmode?: string
  540. }
  541. export interface OlHTMLAttributes extends HTMLAttributes {
  542. reversed?: Booleanish
  543. start?: Numberish
  544. type?: '1' | 'a' | 'A' | 'i' | 'I'
  545. }
  546. export interface OptgroupHTMLAttributes extends HTMLAttributes {
  547. disabled?: Booleanish
  548. label?: string
  549. }
  550. export interface OptionHTMLAttributes extends HTMLAttributes {
  551. disabled?: Booleanish
  552. label?: string
  553. selected?: Booleanish
  554. value?: any // we support :value to be bound to anything w/ v-model
  555. }
  556. export interface OutputHTMLAttributes extends HTMLAttributes {
  557. for?: string
  558. form?: string
  559. name?: string
  560. }
  561. export interface ParamHTMLAttributes extends HTMLAttributes {
  562. name?: string
  563. value?: string | string[] | number
  564. }
  565. export interface ProgressHTMLAttributes extends HTMLAttributes {
  566. max?: Numberish
  567. value?: string | string[] | number
  568. }
  569. export interface ScriptHTMLAttributes extends HTMLAttributes {
  570. async?: Booleanish
  571. charset?: string
  572. crossorigin?: string
  573. defer?: Booleanish
  574. integrity?: string
  575. nomodule?: Booleanish
  576. referrerpolicy?: HTMLAttributeReferrerPolicy
  577. nonce?: string
  578. src?: string
  579. type?: string
  580. }
  581. export interface SelectHTMLAttributes extends HTMLAttributes {
  582. autocomplete?: string
  583. autofocus?: Booleanish
  584. disabled?: Booleanish
  585. form?: string
  586. multiple?: Booleanish
  587. name?: string
  588. required?: Booleanish
  589. size?: Numberish
  590. value?: any // we support :value to be bound to anything w/ v-model
  591. }
  592. export interface SourceHTMLAttributes extends HTMLAttributes {
  593. media?: string
  594. sizes?: string
  595. src?: string
  596. srcset?: string
  597. type?: string
  598. }
  599. export interface StyleHTMLAttributes extends HTMLAttributes {
  600. media?: string
  601. nonce?: string
  602. scoped?: Booleanish
  603. type?: string
  604. }
  605. export interface TableHTMLAttributes extends HTMLAttributes {
  606. cellpadding?: Numberish
  607. cellspacing?: Numberish
  608. summary?: string
  609. }
  610. export interface TextareaHTMLAttributes extends HTMLAttributes {
  611. autocomplete?: string
  612. autofocus?: Booleanish
  613. cols?: Numberish
  614. dirname?: string
  615. disabled?: Booleanish
  616. form?: string
  617. maxlength?: Numberish
  618. minlength?: Numberish
  619. name?: string
  620. placeholder?: string
  621. readonly?: boolean
  622. required?: Booleanish
  623. rows?: Numberish
  624. value?: string | string[] | number
  625. wrap?: string
  626. }
  627. export interface TdHTMLAttributes extends HTMLAttributes {
  628. align?: 'left' | 'center' | 'right' | 'justify' | 'char'
  629. colspan?: Numberish
  630. headers?: string
  631. rowspan?: Numberish
  632. scope?: string
  633. valign?: 'top' | 'middle' | 'bottom' | 'baseline'
  634. }
  635. export interface ThHTMLAttributes extends HTMLAttributes {
  636. align?: 'left' | 'center' | 'right' | 'justify' | 'char'
  637. colspan?: Numberish
  638. headers?: string
  639. rowspan?: Numberish
  640. scope?: string
  641. }
  642. export interface TimeHTMLAttributes extends HTMLAttributes {
  643. datetime?: string
  644. }
  645. export interface TrackHTMLAttributes extends HTMLAttributes {
  646. default?: Booleanish
  647. kind?: string
  648. label?: string
  649. src?: string
  650. srclang?: string
  651. }
  652. export interface VideoHTMLAttributes extends MediaHTMLAttributes {
  653. height?: Numberish
  654. playsinline?: Booleanish
  655. poster?: string
  656. width?: Numberish
  657. disablePictureInPicture?: Booleanish
  658. }
  659. export interface WebViewHTMLAttributes extends HTMLAttributes {
  660. allowfullscreen?: Booleanish
  661. allowpopups?: Booleanish
  662. autoFocus?: Booleanish
  663. autosize?: Booleanish
  664. blinkfeatures?: string
  665. disableblinkfeatures?: string
  666. disableguestresize?: Booleanish
  667. disablewebsecurity?: Booleanish
  668. guestinstance?: string
  669. httpreferrer?: string
  670. nodeintegration?: Booleanish
  671. partition?: string
  672. plugins?: Booleanish
  673. preload?: string
  674. src?: string
  675. useragent?: string
  676. webpreferences?: string
  677. }
  678. export interface SVGAttributes extends AriaAttributes, EventHandlers<Events> {
  679. innerHTML?: string
  680. /**
  681. * SVG Styling Attributes
  682. * @see https://www.w3.org/TR/SVG/styling.html#ElementSpecificStyling
  683. */
  684. class?: any
  685. style?: string | CSSProperties
  686. color?: string
  687. height?: Numberish
  688. id?: string
  689. lang?: string
  690. max?: Numberish
  691. media?: string
  692. method?: string
  693. min?: Numberish
  694. name?: string
  695. target?: string
  696. type?: string
  697. width?: Numberish
  698. // Other HTML properties supported by SVG elements in browsers
  699. role?: string
  700. tabindex?: Numberish
  701. // SVG Specific attributes
  702. 'accent-height'?: Numberish
  703. accumulate?: 'none' | 'sum'
  704. additive?: 'replace' | 'sum'
  705. 'alignment-baseline'?:
  706. | 'auto'
  707. | 'baseline'
  708. | 'before-edge'
  709. | 'text-before-edge'
  710. | 'middle'
  711. | 'central'
  712. | 'after-edge'
  713. | 'text-after-edge'
  714. | 'ideographic'
  715. | 'alphabetic'
  716. | 'hanging'
  717. | 'mathematical'
  718. | 'inherit'
  719. allowReorder?: 'no' | 'yes'
  720. alphabetic?: Numberish
  721. amplitude?: Numberish
  722. 'arabic-form'?: 'initial' | 'medial' | 'terminal' | 'isolated'
  723. ascent?: Numberish
  724. attributeName?: string
  725. attributeType?: string
  726. autoReverse?: Numberish
  727. azimuth?: Numberish
  728. baseFrequency?: Numberish
  729. 'baseline-shift'?: Numberish
  730. baseProfile?: Numberish
  731. bbox?: Numberish
  732. begin?: Numberish
  733. bias?: Numberish
  734. by?: Numberish
  735. calcMode?: Numberish
  736. 'cap-height'?: Numberish
  737. clip?: Numberish
  738. 'clip-path'?: string
  739. clipPathUnits?: Numberish
  740. 'clip-rule'?: Numberish
  741. 'color-interpolation'?: Numberish
  742. 'color-interpolation-filters'?: 'auto' | 'sRGB' | 'linearRGB' | 'inherit'
  743. 'color-profile'?: Numberish
  744. 'color-rendering'?: Numberish
  745. contentScriptType?: Numberish
  746. contentStyleType?: Numberish
  747. cursor?: Numberish
  748. cx?: Numberish
  749. cy?: Numberish
  750. d?: string
  751. decelerate?: Numberish
  752. descent?: Numberish
  753. diffuseConstant?: Numberish
  754. direction?: Numberish
  755. display?: Numberish
  756. divisor?: Numberish
  757. 'dominant-baseline'?: Numberish
  758. dur?: Numberish
  759. dx?: Numberish
  760. dy?: Numberish
  761. edgeMode?: Numberish
  762. elevation?: Numberish
  763. 'enable-background'?: Numberish
  764. end?: Numberish
  765. exponent?: Numberish
  766. externalResourcesRequired?: Numberish
  767. fill?: string
  768. 'fill-opacity'?: Numberish
  769. 'fill-rule'?: 'nonzero' | 'evenodd' | 'inherit'
  770. filter?: string
  771. filterRes?: Numberish
  772. filterUnits?: Numberish
  773. 'flood-color'?: Numberish
  774. 'flood-opacity'?: Numberish
  775. focusable?: Numberish
  776. 'font-family'?: string
  777. 'font-size'?: Numberish
  778. 'font-size-adjust'?: Numberish
  779. 'font-stretch'?: Numberish
  780. 'font-style'?: Numberish
  781. 'font-variant'?: Numberish
  782. 'font-weight'?: Numberish
  783. format?: Numberish
  784. from?: Numberish
  785. fx?: Numberish
  786. fy?: Numberish
  787. g1?: Numberish
  788. g2?: Numberish
  789. 'glyph-name'?: Numberish
  790. 'glyph-orientation-horizontal'?: Numberish
  791. 'glyph-orientation-vertical'?: Numberish
  792. glyphRef?: Numberish
  793. gradientTransform?: string
  794. gradientUnits?: string
  795. hanging?: Numberish
  796. 'horiz-adv-x'?: Numberish
  797. 'horiz-origin-x'?: Numberish
  798. href?: string
  799. ideographic?: Numberish
  800. 'image-rendering'?: Numberish
  801. in2?: Numberish
  802. in?: string
  803. intercept?: Numberish
  804. k1?: Numberish
  805. k2?: Numberish
  806. k3?: Numberish
  807. k4?: Numberish
  808. k?: Numberish
  809. kernelMatrix?: Numberish
  810. kernelUnitLength?: Numberish
  811. kerning?: Numberish
  812. keyPoints?: Numberish
  813. keySplines?: Numberish
  814. keyTimes?: Numberish
  815. lengthAdjust?: Numberish
  816. 'letter-spacing'?: Numberish
  817. 'lighting-color'?: Numberish
  818. limitingConeAngle?: Numberish
  819. local?: Numberish
  820. 'marker-end'?: string
  821. markerHeight?: Numberish
  822. 'marker-mid'?: string
  823. 'marker-start'?: string
  824. markerUnits?: Numberish
  825. markerWidth?: Numberish
  826. mask?: string
  827. maskContentUnits?: Numberish
  828. maskUnits?: Numberish
  829. mathematical?: Numberish
  830. mode?: Numberish
  831. numOctaves?: Numberish
  832. offset?: Numberish
  833. opacity?: Numberish
  834. operator?: Numberish
  835. order?: Numberish
  836. orient?: Numberish
  837. orientation?: Numberish
  838. origin?: Numberish
  839. overflow?: Numberish
  840. 'overline-position'?: Numberish
  841. 'overline-thickness'?: Numberish
  842. 'paint-order'?: Numberish
  843. 'panose-1'?: Numberish
  844. pathLength?: Numberish
  845. patternContentUnits?: string
  846. patternTransform?: Numberish
  847. patternUnits?: string
  848. 'pointer-events'?: Numberish
  849. points?: string
  850. pointsAtX?: Numberish
  851. pointsAtY?: Numberish
  852. pointsAtZ?: Numberish
  853. preserveAlpha?: Numberish
  854. preserveAspectRatio?: string
  855. primitiveUnits?: Numberish
  856. r?: Numberish
  857. radius?: Numberish
  858. refX?: Numberish
  859. refY?: Numberish
  860. renderingIntent?: Numberish
  861. repeatCount?: Numberish
  862. repeatDur?: Numberish
  863. requiredExtensions?: Numberish
  864. requiredFeatures?: Numberish
  865. restart?: Numberish
  866. result?: string
  867. rotate?: Numberish
  868. rx?: Numberish
  869. ry?: Numberish
  870. scale?: Numberish
  871. seed?: Numberish
  872. 'shape-rendering'?: Numberish
  873. slope?: Numberish
  874. spacing?: Numberish
  875. specularConstant?: Numberish
  876. specularExponent?: Numberish
  877. speed?: Numberish
  878. spreadMethod?: string
  879. startOffset?: Numberish
  880. stdDeviation?: Numberish
  881. stemh?: Numberish
  882. stemv?: Numberish
  883. stitchTiles?: Numberish
  884. 'stop-color'?: string
  885. 'stop-opacity'?: Numberish
  886. 'strikethrough-position'?: Numberish
  887. 'strikethrough-thickness'?: Numberish
  888. string?: Numberish
  889. stroke?: string
  890. 'stroke-dasharray'?: Numberish
  891. 'stroke-dashoffset'?: Numberish
  892. 'stroke-linecap'?: 'butt' | 'round' | 'square' | 'inherit'
  893. 'stroke-linejoin'?: 'miter' | 'round' | 'bevel' | 'inherit'
  894. 'stroke-miterlimit'?: Numberish
  895. 'stroke-opacity'?: Numberish
  896. 'stroke-width'?: Numberish
  897. surfaceScale?: Numberish
  898. systemLanguage?: Numberish
  899. tableValues?: Numberish
  900. targetX?: Numberish
  901. targetY?: Numberish
  902. 'text-anchor'?: string
  903. 'text-decoration'?: Numberish
  904. textLength?: Numberish
  905. 'text-rendering'?: Numberish
  906. to?: Numberish
  907. transform?: string
  908. u1?: Numberish
  909. u2?: Numberish
  910. 'underline-position'?: Numberish
  911. 'underline-thickness'?: Numberish
  912. unicode?: Numberish
  913. 'unicode-bidi'?: Numberish
  914. 'unicode-range'?: Numberish
  915. 'unitsPer-em'?: Numberish
  916. 'v-alphabetic'?: Numberish
  917. values?: string
  918. 'vector-effect'?: Numberish
  919. version?: string
  920. 'vert-adv-y'?: Numberish
  921. 'vert-origin-x'?: Numberish
  922. 'vert-origin-y'?: Numberish
  923. 'v-hanging'?: Numberish
  924. 'v-ideographic'?: Numberish
  925. viewBox?: string
  926. viewTarget?: Numberish
  927. visibility?: Numberish
  928. 'v-mathematical'?: Numberish
  929. widths?: Numberish
  930. 'word-spacing'?: Numberish
  931. 'writing-mode'?: Numberish
  932. x1?: Numberish
  933. x2?: Numberish
  934. x?: Numberish
  935. xChannelSelector?: string
  936. 'x-height'?: Numberish
  937. xlinkActuate?: string
  938. xlinkArcrole?: string
  939. xlinkHref?: string
  940. xlinkRole?: string
  941. xlinkShow?: string
  942. xlinkTitle?: string
  943. xlinkType?: string
  944. xmlns?: string
  945. y1?: Numberish
  946. y2?: Numberish
  947. y?: Numberish
  948. yChannelSelector?: string
  949. z?: Numberish
  950. zoomAndPan?: string
  951. }
  952. export interface IntrinsicElementAttributes {
  953. a: AnchorHTMLAttributes
  954. abbr: HTMLAttributes
  955. address: HTMLAttributes
  956. area: AreaHTMLAttributes
  957. article: HTMLAttributes
  958. aside: HTMLAttributes
  959. audio: AudioHTMLAttributes
  960. b: HTMLAttributes
  961. base: BaseHTMLAttributes
  962. bdi: HTMLAttributes
  963. bdo: HTMLAttributes
  964. blockquote: BlockquoteHTMLAttributes
  965. body: HTMLAttributes
  966. br: HTMLAttributes
  967. button: ButtonHTMLAttributes
  968. canvas: CanvasHTMLAttributes
  969. caption: HTMLAttributes
  970. cite: HTMLAttributes
  971. code: HTMLAttributes
  972. col: ColHTMLAttributes
  973. colgroup: ColgroupHTMLAttributes
  974. data: DataHTMLAttributes
  975. datalist: HTMLAttributes
  976. dd: HTMLAttributes
  977. del: DelHTMLAttributes
  978. details: DetailsHTMLAttributes
  979. dfn: HTMLAttributes
  980. dialog: DialogHTMLAttributes
  981. div: HTMLAttributes
  982. dl: HTMLAttributes
  983. dt: HTMLAttributes
  984. em: HTMLAttributes
  985. embed: EmbedHTMLAttributes
  986. fieldset: FieldsetHTMLAttributes
  987. figcaption: HTMLAttributes
  988. figure: HTMLAttributes
  989. footer: HTMLAttributes
  990. form: FormHTMLAttributes
  991. h1: HTMLAttributes
  992. h2: HTMLAttributes
  993. h3: HTMLAttributes
  994. h4: HTMLAttributes
  995. h5: HTMLAttributes
  996. h6: HTMLAttributes
  997. head: HTMLAttributes
  998. header: HTMLAttributes
  999. hgroup: HTMLAttributes
  1000. hr: HTMLAttributes
  1001. html: HtmlHTMLAttributes
  1002. i: HTMLAttributes
  1003. iframe: IframeHTMLAttributes
  1004. img: ImgHTMLAttributes
  1005. input: InputHTMLAttributes
  1006. ins: InsHTMLAttributes
  1007. kbd: HTMLAttributes
  1008. keygen: KeygenHTMLAttributes
  1009. label: LabelHTMLAttributes
  1010. legend: HTMLAttributes
  1011. li: LiHTMLAttributes
  1012. link: LinkHTMLAttributes
  1013. main: HTMLAttributes
  1014. map: MapHTMLAttributes
  1015. mark: HTMLAttributes
  1016. menu: MenuHTMLAttributes
  1017. meta: MetaHTMLAttributes
  1018. meter: MeterHTMLAttributes
  1019. nav: HTMLAttributes
  1020. noindex: HTMLAttributes
  1021. noscript: HTMLAttributes
  1022. object: ObjectHTMLAttributes
  1023. ol: OlHTMLAttributes
  1024. optgroup: OptgroupHTMLAttributes
  1025. option: OptionHTMLAttributes
  1026. output: OutputHTMLAttributes
  1027. p: HTMLAttributes
  1028. param: ParamHTMLAttributes
  1029. picture: HTMLAttributes
  1030. pre: HTMLAttributes
  1031. progress: ProgressHTMLAttributes
  1032. q: QuoteHTMLAttributes
  1033. rp: HTMLAttributes
  1034. rt: HTMLAttributes
  1035. ruby: HTMLAttributes
  1036. s: HTMLAttributes
  1037. samp: HTMLAttributes
  1038. script: ScriptHTMLAttributes
  1039. section: HTMLAttributes
  1040. select: SelectHTMLAttributes
  1041. small: HTMLAttributes
  1042. source: SourceHTMLAttributes
  1043. span: HTMLAttributes
  1044. strong: HTMLAttributes
  1045. style: StyleHTMLAttributes
  1046. sub: HTMLAttributes
  1047. summary: HTMLAttributes
  1048. sup: HTMLAttributes
  1049. table: TableHTMLAttributes
  1050. template: HTMLAttributes
  1051. tbody: HTMLAttributes
  1052. td: TdHTMLAttributes
  1053. textarea: TextareaHTMLAttributes
  1054. tfoot: HTMLAttributes
  1055. th: ThHTMLAttributes
  1056. thead: HTMLAttributes
  1057. time: TimeHTMLAttributes
  1058. title: HTMLAttributes
  1059. tr: HTMLAttributes
  1060. track: TrackHTMLAttributes
  1061. u: HTMLAttributes
  1062. ul: HTMLAttributes
  1063. var: HTMLAttributes
  1064. video: VideoHTMLAttributes
  1065. wbr: HTMLAttributes
  1066. webview: WebViewHTMLAttributes
  1067. // SVG
  1068. svg: SVGAttributes
  1069. animate: SVGAttributes
  1070. animateMotion: SVGAttributes
  1071. animateTransform: SVGAttributes
  1072. circle: SVGAttributes
  1073. clipPath: SVGAttributes
  1074. defs: SVGAttributes
  1075. desc: SVGAttributes
  1076. ellipse: SVGAttributes
  1077. feBlend: SVGAttributes
  1078. feColorMatrix: SVGAttributes
  1079. feComponentTransfer: SVGAttributes
  1080. feComposite: SVGAttributes
  1081. feConvolveMatrix: SVGAttributes
  1082. feDiffuseLighting: SVGAttributes
  1083. feDisplacementMap: SVGAttributes
  1084. feDistantLight: SVGAttributes
  1085. feDropShadow: SVGAttributes
  1086. feFlood: SVGAttributes
  1087. feFuncA: SVGAttributes
  1088. feFuncB: SVGAttributes
  1089. feFuncG: SVGAttributes
  1090. feFuncR: SVGAttributes
  1091. feGaussianBlur: SVGAttributes
  1092. feImage: SVGAttributes
  1093. feMerge: SVGAttributes
  1094. feMergeNode: SVGAttributes
  1095. feMorphology: SVGAttributes
  1096. feOffset: SVGAttributes
  1097. fePointLight: SVGAttributes
  1098. feSpecularLighting: SVGAttributes
  1099. feSpotLight: SVGAttributes
  1100. feTile: SVGAttributes
  1101. feTurbulence: SVGAttributes
  1102. filter: SVGAttributes
  1103. foreignObject: SVGAttributes
  1104. g: SVGAttributes
  1105. image: SVGAttributes
  1106. line: SVGAttributes
  1107. linearGradient: SVGAttributes
  1108. marker: SVGAttributes
  1109. mask: SVGAttributes
  1110. metadata: SVGAttributes
  1111. mpath: SVGAttributes
  1112. path: SVGAttributes
  1113. pattern: SVGAttributes
  1114. polygon: SVGAttributes
  1115. polyline: SVGAttributes
  1116. radialGradient: SVGAttributes
  1117. rect: SVGAttributes
  1118. stop: SVGAttributes
  1119. switch: SVGAttributes
  1120. symbol: SVGAttributes
  1121. text: SVGAttributes
  1122. textPath: SVGAttributes
  1123. tspan: SVGAttributes
  1124. use: SVGAttributes
  1125. view: SVGAttributes
  1126. }
  1127. export interface Events {
  1128. // clipboard events
  1129. onCopy: ClipboardEvent
  1130. onCut: ClipboardEvent
  1131. onPaste: ClipboardEvent
  1132. // composition events
  1133. onCompositionend: CompositionEvent
  1134. onCompositionstart: CompositionEvent
  1135. onCompositionupdate: CompositionEvent
  1136. // drag drop events
  1137. onDrag: DragEvent
  1138. onDragend: DragEvent
  1139. onDragenter: DragEvent
  1140. onDragexit: DragEvent
  1141. onDragleave: DragEvent
  1142. onDragover: DragEvent
  1143. onDragstart: DragEvent
  1144. onDrop: DragEvent
  1145. // focus events
  1146. onFocus: FocusEvent
  1147. onFocusin: FocusEvent
  1148. onFocusout: FocusEvent
  1149. onBlur: FocusEvent
  1150. // form events
  1151. onChange: Event
  1152. onBeforeinput: Event
  1153. onInput: Event
  1154. onReset: Event
  1155. onSubmit: Event
  1156. onInvalid: Event
  1157. // image events
  1158. onLoad: Event
  1159. onError: Event
  1160. // keyboard events
  1161. onKeydown: KeyboardEvent
  1162. onKeypress: KeyboardEvent
  1163. onKeyup: KeyboardEvent
  1164. // mouse events
  1165. onAuxclick: MouseEvent
  1166. onClick: MouseEvent
  1167. onContextmenu: MouseEvent
  1168. onDblclick: MouseEvent
  1169. onMousedown: MouseEvent
  1170. onMouseenter: MouseEvent
  1171. onMouseleave: MouseEvent
  1172. onMousemove: MouseEvent
  1173. onMouseout: MouseEvent
  1174. onMouseover: MouseEvent
  1175. onMouseup: MouseEvent
  1176. // media events
  1177. onAbort: Event
  1178. onCanplay: Event
  1179. onCanplaythrough: Event
  1180. onDurationchange: Event
  1181. onEmptied: Event
  1182. onEncrypted: Event
  1183. onEnded: Event
  1184. onLoadeddata: Event
  1185. onLoadedmetadata: Event
  1186. onLoadstart: Event
  1187. onPause: Event
  1188. onPlay: Event
  1189. onPlaying: Event
  1190. onProgress: Event
  1191. onRatechange: Event
  1192. onSeeked: Event
  1193. onSeeking: Event
  1194. onStalled: Event
  1195. onSuspend: Event
  1196. onTimeupdate: Event
  1197. onVolumechange: Event
  1198. onWaiting: Event
  1199. // selection events
  1200. onSelect: Event
  1201. // UI events
  1202. onScroll: UIEvent
  1203. // touch events
  1204. onTouchcancel: TouchEvent
  1205. onTouchend: TouchEvent
  1206. onTouchmove: TouchEvent
  1207. onTouchstart: TouchEvent
  1208. // pointer events
  1209. onPointerdown: PointerEvent
  1210. onPointermove: PointerEvent
  1211. onPointerup: PointerEvent
  1212. onPointercancel: PointerEvent
  1213. onPointerenter: PointerEvent
  1214. onPointerleave: PointerEvent
  1215. onPointerover: PointerEvent
  1216. onPointerout: PointerEvent
  1217. // wheel events
  1218. onWheel: WheelEvent
  1219. // animation events
  1220. onAnimationstart: AnimationEvent
  1221. onAnimationend: AnimationEvent
  1222. onAnimationiteration: AnimationEvent
  1223. // transition events
  1224. onTransitionend: TransitionEvent
  1225. onTransitionstart: TransitionEvent
  1226. }
  1227. type EventHandlers<E> = {
  1228. [K in keyof E]?: E[K] extends (...args: any) => any
  1229. ? E[K]
  1230. : (payload: E[K]) => void
  1231. }