import { BaseDriver } from './base-driver'; import { AnyClass, AragamiOptions, Awaitable, ClassType } from './def'; import { MayBeArray } from './utility/utility'; import { PartialDeep } from './utility/partial-deep'; export declare class Aragami { private options; readonly driver: BaseDriver; constructor(options?: AragamiOptions); private getBaseKey; private getKey; private getTTL; private encode; private decode; get(cl: ClassType, key: string): Promise; set(o: T, options?: { ttl?: number; key?: string; prototype?: ClassType; }): Promise; set(prototype: ClassType, o: PartialDeep, options?: { ttl?: number; key?: string; }): Promise; has(base: AnyClass | string, key: string): Promise; has(base: any): Promise; del(base: AnyClass | string, key: string): Promise; del(base: any): Promise; clear(base: AnyClass | string, prefix?: string): Promise; keys(base: AnyClass | string, prefix?: string): Promise; values(cl: ClassType, prefix?: string): Promise; entries(cl: ClassType, prefix?: string): Promise<[string, T][]>; cache(cl: ClassType, keyOrMeta: string | T, cb: () => Awaitable): Promise; useCache(cl: ClassType, cb: (...args: A) => Awaitable, keySource: (...args: A) => Awaitable): (...args: A) => Promise; private getLockKeys; lock(keys: MayBeArray, cb: () => Awaitable): Promise; isFree(keys: MayBeArray): Promise; useLock(cb: (...args: A) => R, keySource: (...args: A) => Awaitable>): (...args: A) => Promise; destroy(): Promise; isQueueEmpty(cl: ClassType, key?: string): Promise; queueLength(cl: ClassType, key?: string): Promise; queueItems(cl: ClassType, key?: string): Promise; queueAdd(o: T, options?: { key?: string; prototype?: ClassType; prior?: boolean; }): Promise; queueAdd(prototype: ClassType, o: PartialDeep, options?: { key?: string; prior?: boolean; }): Promise; queueGather(prototype: ClassType, key?: string): Promise; queueGatherBlocking(prototype: ClassType, key?: string): Promise; queueClear(prototype: ClassType, key?: string): Promise; queueResumeAll(prototype: ClassType, key?: string, prior?: boolean): Promise; runQueueOnce(prototype: ClassType, cb: (item: T) => Awaitable, key?: string): Promise; }