@abextm/cache2
Version:
Utilities for reading OSRS "caches"
39 lines • 1.93 kB
TypeScript
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