// Cookie Store API // Specification: https://wicg.github.io/cookie-store/ // Repository: https://github.com/WICG/cookie-store /// interface CookieStore extends EventTarget { get(name: string): Promise; get(options: CookieStoreGetOptions): Promise; getAll(name: string): Promise; getAll(options: CookieStoreGetOptions): Promise; set(name: string, value: string): Promise; set(options: CookieInit): Promise; delete(name: string): Promise; delete(options: CookieStoreDeleteOptions): Promise; onchange: ((this: CookieStore, ev: CookieChangeEvent) => any) | null; addEventListener(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var CookieStore: { prototype: CookieStore; }; interface CookieStoreEventMap { "change": CookieChangeEvent; } interface CookieStoreGetOptions { name: string; url: string; } type CookieSameSite = ( | "strict" | "lax" | "none" ); interface CookieInit { name: string; value: string; expires?: EpochTimeStamp; domain?: string; path?: string; sameSite?: CookieSameSite; } interface CookieStoreDeleteOptions { name: string; domain?: string; path?: string; } interface CookieListItem { name: string; value: string; domain: string | null; path: string; expires: EpochTimeStamp | null; secure: boolean; sameSite: CookieSameSite; } type CookieList = CookieListItem[]; interface CookieStoreManager { subscribe(subscriptions: CookieStoreGetOptions[]): Promise; getSubscriptions(): Promise; unsubscribe(subscriptions: CookieStoreGetOptions[]): Promise; } declare var CookieStoreManager: { prototype: CookieStoreManager; }; interface ServiceWorkerRegistration { readonly cookies: CookieStoreManager; } interface CookieChangeEvent extends Event { readonly changed: ReadonlyArray; readonly deleted: ReadonlyArray; } declare var CookieChangeEvent: { prototype: CookieChangeEvent; new(type: string, eventInitDict?: CookieChangeEventInit): CookieChangeEvent; }; interface CookieChangeEventInit extends EventInit { changed: CookieList; deleted: CookieList; } declare var cookieStore: CookieStore; interface ExtendableCookieChangeEvent extends ExtendableEvent { readonly changed: ReadonlyArray; readonly deleted: ReadonlyArray; } declare var ExtendableCookieChangeEvent: { prototype: ExtendableCookieChangeEvent; new(type: string, eventInitDict?: CookieChangeEventInit): ExtendableCookieChangeEvent; } interface ExtendableCookieChangeEventInit extends ExtendableEventInit { changed: CookieList; deleted: CookieList; } declare var ExtendableCookieChangeEventInit: { prototype: ExtendableCookieChangeEventInit; }