declare module "types" { /** * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ global { interface Document { activeViewTransition: ViewTransition | null; startViewTransition(callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): ViewTransition; } } interface ViewTransition { readonly finished: Promise; readonly ready: Promise; readonly updateCallbackDone: Promise; readonly types: ViewTransitionTypeSet; skipTransition(): void; } type ViewTransitionUpdateCallback = () => void | Promise; interface StartViewTransitionOptions { update: ViewTransitionUpdateCallback | null; types?: string[] | null; } interface ViewTransitionTypeSet extends Set { } type ViewTransitionPhase = "pending-capture" | "update-callback-called" | "animating" | "done"; const possibleViewTransitionPhases: ViewTransitionPhase[]; type RegistrationTrigger = { requireTypes: boolean; forced: boolean; }; export { ViewTransition, ViewTransitionUpdateCallback, StartViewTransitionOptions, ViewTransitionTypeSet, ViewTransitionPhase, possibleViewTransitionPhases, RegistrationTrigger, }; } declare module "classes/ViewTransitionTypeSet" { /** * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { ViewTransitionTypeSet as ViewTransitionTypeSetInterface } from "types"; class ViewTransitionTypeSet extends Set implements ViewTransitionTypeSetInterface { constructor(); } export { ViewTransitionTypeSet }; } declare module "classes/ViewTransition" { /** * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import WatchablePromise from "watchable-promise"; import { ViewTransition as ViewTransitionInterface, ViewTransitionUpdateCallback, ViewTransitionPhase } from "types"; import { ViewTransitionTypeSet } from "classes/ViewTransitionTypeSet"; const setAllowClassCreation: (value: boolean) => void; export { setAllowClassCreation }; class ViewTransition implements ViewTransitionInterface { #private; constructor(); skipTransition: () => undefined; get updateCallbackDone(): WatchablePromise; get ready(): WatchablePromise; get finished(): WatchablePromise; set types(types: Set); get types(): ViewTransitionTypeSet; set phase(phase: ViewTransitionPhase); get phase(): ViewTransitionPhase; set updateCallback(callback: ViewTransitionUpdateCallback | null); get updateCallback(): ViewTransitionUpdateCallback | null; set transitionRoot(root: Element | Document); get transitionRoot(): Element | null; } export { ViewTransition }; } declare module "same-document" { import { ViewTransitionUpdateCallback, StartViewTransitionOptions } from "types"; import { ViewTransition } from "classes/ViewTransition"; function startViewTransition(this: Document | Element, params?: ViewTransitionUpdateCallback | StartViewTransitionOptions): ViewTransition; const getActiveViewTranstion: () => ViewTransition | null; const skipTheViewTransition: (transition: ViewTransition, reason?: any) => Promise; export { startViewTransition, getActiveViewTranstion, skipTheViewTransition }; } declare module "index" { import { RegistrationTrigger } from "types"; const register: (registrationTrigger?: RegistrationTrigger) => void; const unregister: () => void; export { register, unregister }; }