client.d.ts 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. declare module 'virtual:pwa-register' {
  2. export interface RegisterSWOptions {
  3. immediate?: boolean
  4. onNeedRefresh?: () => void
  5. onOfflineReady?: () => void
  6. /**
  7. * Called only if `onRegisteredSW` is not provided.
  8. *
  9. * @deprecated Use `onRegisteredSW` instead.
  10. * @param registration The service worker registration if available.
  11. */
  12. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  13. /**
  14. * Called once the service worker is registered (requires version `0.12.8+`).
  15. *
  16. * @param swScriptUrl The service worker script url.
  17. * @param registration The service worker registration if available.
  18. */
  19. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  20. onRegisterError?: (error: any) => void
  21. }
  22. /**
  23. * Registers the service worker returning a callback to reload the current page when an update is found.
  24. *
  25. * @param options the options to register the service worker.
  26. * @return (reloadPage?: boolean) => Promise<void> From version 0.13.2+ `reloadPage` param is not used anymore.
  27. */
  28. export function registerSW(options?: RegisterSWOptions): (reloadPage?: boolean) => Promise<void>
  29. }
  30. declare module 'virtual:pwa-register/vue' {
  31. // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
  32. // @ts-ignore ignore when vue is not installed
  33. import type { Ref } from 'vue'
  34. export interface RegisterSWOptions {
  35. immediate?: boolean
  36. onNeedRefresh?: () => void
  37. onOfflineReady?: () => void
  38. /**
  39. * Called only if `onRegisteredSW` is not provided.
  40. *
  41. * @deprecated Use `onRegisteredSW` instead.
  42. * @param registration The service worker registration if available.
  43. */
  44. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  45. /**
  46. * Called once the service worker is registered (requires version `0.12.8+`).
  47. *
  48. * @param swScriptUrl The service worker script url.
  49. * @param registration The service worker registration if available.
  50. */
  51. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  52. onRegisterError?: (error: any) => void
  53. }
  54. export function useRegisterSW(options?: RegisterSWOptions): {
  55. needRefresh: Ref<boolean>
  56. offlineReady: Ref<boolean>
  57. /**
  58. * Reloads the current window to allow the service worker take the control.
  59. *
  60. * @param reloadPage From version 0.13.2+ this param is not used anymore.
  61. */
  62. updateServiceWorker: (reloadPage?: boolean) => Promise<void>
  63. }
  64. }
  65. declare module 'virtual:pwa-register/svelte' {
  66. // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
  67. // @ts-ignore ignore when svelte is not installed
  68. import type { Writable } from 'svelte/store'
  69. export interface RegisterSWOptions {
  70. immediate?: boolean
  71. onNeedRefresh?: () => void
  72. onOfflineReady?: () => void
  73. /**
  74. * Called only if `onRegisteredSW` is not provided.
  75. *
  76. * @deprecated Use `onRegisteredSW` instead.
  77. * @param registration The service worker registration if available.
  78. */
  79. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  80. /**
  81. * Called once the service worker is registered (requires version `0.12.8+`).
  82. *
  83. * @param swScriptUrl The service worker script url.
  84. * @param registration The service worker registration if available.
  85. */
  86. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  87. onRegisterError?: (error: any) => void
  88. }
  89. export function useRegisterSW(options?: RegisterSWOptions): {
  90. needRefresh: Writable<boolean>
  91. offlineReady: Writable<boolean>
  92. /**
  93. * Reloads the current window to allow the service worker take the control.
  94. *
  95. * @param reloadPage From version 0.13.2+ this param is not used anymore.
  96. */
  97. updateServiceWorker: (reloadPage?: boolean) => Promise<void>
  98. }
  99. }
  100. declare module 'virtual:pwa-register/react' {
  101. // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
  102. // @ts-ignore ignore when react is not installed
  103. import type { Dispatch, SetStateAction } from 'react'
  104. export interface RegisterSWOptions {
  105. immediate?: boolean
  106. onNeedRefresh?: () => void
  107. onOfflineReady?: () => void
  108. /**
  109. * Called only if `onRegisteredSW` is not provided.
  110. *
  111. * @deprecated Use `onRegisteredSW` instead.
  112. * @param registration The service worker registration if available.
  113. */
  114. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  115. /**
  116. * Called once the service worker is registered (requires version `0.12.8+`).
  117. *
  118. * @param swScriptUrl The service worker script url.
  119. * @param registration The service worker registration if available.
  120. */
  121. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  122. onRegisterError?: (error: any) => void
  123. }
  124. export function useRegisterSW(options?: RegisterSWOptions): {
  125. needRefresh: [boolean, Dispatch<SetStateAction<boolean>>]
  126. offlineReady: [boolean, Dispatch<SetStateAction<boolean>>]
  127. /**
  128. * Reloads the current window to allow the service worker take the control.
  129. *
  130. * @param reloadPage From version 0.13.2+ this param is not used anymore.
  131. */
  132. updateServiceWorker: (reloadPage?: boolean) => Promise<void>
  133. }
  134. }
  135. declare module 'virtual:pwa-register/solid' {
  136. // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
  137. // @ts-ignore ignore when solid-js is not installed
  138. import type { Accessor, Setter } from 'solid-js'
  139. export interface RegisterSWOptions {
  140. immediate?: boolean
  141. onNeedRefresh?: () => void
  142. onOfflineReady?: () => void
  143. /**
  144. * Called only if `onRegisteredSW` is not provided.
  145. *
  146. * @deprecated Use `onRegisteredSW` instead.
  147. * @param registration The service worker registration if available.
  148. */
  149. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  150. /**
  151. * Called once the service worker is registered (requires version `0.12.8+`).
  152. *
  153. * @param swScriptUrl The service worker script url.
  154. * @param registration The service worker registration if available.
  155. */
  156. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  157. onRegisterError?: (error: any) => void
  158. }
  159. export function useRegisterSW(options?: RegisterSWOptions): {
  160. needRefresh: [Accessor<boolean>, Setter<boolean>]
  161. offlineReady: [Accessor<boolean>, Setter<boolean>]
  162. /**
  163. * Reloads the current window to allow the service worker take the control.
  164. *
  165. * @param reloadPage From version 0.13.2+ this param is not used anymore.
  166. */
  167. updateServiceWorker: (reloadPage?: boolean) => Promise<void>
  168. }
  169. }
  170. declare module 'virtual:pwa-register/preact' {
  171. // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
  172. // @ts-ignore ignore when preact/hooks is not installed
  173. import type { StateUpdater } from 'preact/hooks'
  174. export interface RegisterSWOptions {
  175. immediate?: boolean
  176. onNeedRefresh?: () => void
  177. onOfflineReady?: () => void
  178. /**
  179. * Called only if `onRegisteredSW` is not provided.
  180. *
  181. * @deprecated Use `onRegisteredSW` instead.
  182. * @param registration The service worker registration if available.
  183. */
  184. onRegistered?: (registration: ServiceWorkerRegistration | undefined) => void
  185. /**
  186. * Called once the service worker is registered (requires version `0.12.8+`).
  187. *
  188. * @param swScriptUrl The service worker script url.
  189. * @param registration The service worker registration if available.
  190. */
  191. onRegisteredSW?: (swScriptUrl: string, registration: ServiceWorkerRegistration | undefined) => void
  192. onRegisterError?: (error: any) => void
  193. }
  194. export function useRegisterSW(options?: RegisterSWOptions): {
  195. needRefresh: [boolean, StateUpdater<boolean>]
  196. offlineReady: [boolean, StateUpdater<boolean>]
  197. /**
  198. * Reloads the current window to allow the service worker take the control.
  199. *
  200. * @param reloadPage From version 0.13.2+ this param is not used anymore.
  201. */
  202. updateServiceWorker: (reloadPage?: boolean) => Promise<void>
  203. }
  204. }