chenyc
2025-12-09 65e034683b28d799e73c7d7e5e4769fab5b9bc9c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
export {};
 
// These interfaces are absent from lib.webworker, so the conditionals use `onabort` rather than `onmessage`
type _Storage = typeof globalThis extends { onabort: any } ? {} : Storage;
interface Storage {
    readonly length: number;
    clear(): void;
    getItem(key: string): string | null;
    key(index: number): string | null;
    removeItem(key: string): void;
    setItem(key: string, value: string): void;
    [key: string]: any;
}
 
declare global {
    interface Storage extends _Storage {}
    var Storage: typeof globalThis extends { onabort: any; Storage: infer T } ? T : {
        prototype: Storage;
        new(): Storage;
    };
 
    var localStorage: Storage;
    var sessionStorage: Storage;
}