UNPKG

@abextm/cache2

Version:

Utilities for reading OSRS "caches"

39 lines 1.93 kB
import { CacheProvider } from "./Cache.js"; import { Reader } from "./Reader.js"; type LoadableType<I extends Loadable, ARGS extends unknown[]> = { decode(reader: Reader, ...args: ARGS): I; loadData(cache: CacheProvider, ...args: ARGS): Promise<Reader | undefined>; }; type OrNumber<T extends unknown[]> = T; export declare abstract class Loadable { static load<I extends Loadable, ARGS extends unknown[]>(this: LoadableType<I, ARGS>, cache: CacheProvider | Promise<CacheProvider>, ...args: OrNumber<ARGS>): Promise<I | undefined>; static load<I extends Loadable, ARGS extends unknown[]>(this: LoadableType<I, ARGS>, reader: Reader | ArrayBufferView | ArrayBuffer, ...args: OrNumber<ARGS>): I; } export declare abstract class PerArchiveLoadable extends Loadable { static loadData(this: { index: number; }, cache: CacheProvider, id: number): Promise<Reader | undefined>; static all<I extends PerArchiveLoadable, ID extends number>(this: { index: number; decode(reader: Reader, id: ID): I; }, cache0: CacheProvider | Promise<CacheProvider>): Promise<I[]>; } export declare abstract class NamedPerArchiveLoadable extends PerArchiveLoadable { static loadByName<I extends PerArchiveLoadable, ID extends number>(this: { index: number; decode(reader: Reader, id: ID): I; }, cache0: CacheProvider | Promise<CacheProvider>, name: string | number): Promise<I | undefined>; } export declare class PerFileLoadable extends Loadable { static loadData(this: { index: number; archive: number; }, cache: CacheProvider, id: number): Promise<Reader | undefined>; static all<I extends PerFileLoadable, ID extends number>(this: { index: number; archive: number; decode(reader: Reader, id: ID): I; }, cache0: CacheProvider | Promise<CacheProvider>): Promise<I[]>; } export {}; //# sourceMappingURL=Loadable.d.ts.map