import type { Adapter } from './types';
export interface MemoryAdapterOptions<T> {
    encode(data: any): T;
    decode(data: T): unknown;
}
export declare class MemoryAdapter<T> implements Adapter {
    options: MemoryAdapterOptions<T>;
    isAsync: boolean;
    readonly storage: Map<string, T>;
    readonly relationships: Map<string, string[]>;
    constructor(options?: MemoryAdapterOptions<T>);
    start(): void;
    scan(query: string, keys?: false): any[];
    scan(query: string, keys: true): string[];
    bulkGet(keys: string[]): unknown[];
    get(keys: string): unknown;
    bulkSet(keys: [string, any][]): void;
    set(key: string, data: any): void;
    bulkPatch(keys: [string, any][]): void;
    patch(keys: string, data: any): void;
    values(to: string): any[];
    keys(to: string): string[];
    count(to: string): number;
    bulkRemove(keys: string[]): void;
    remove(key: string): void;
    flush(): void;
    contains(to: string, keys: string): boolean;
    getToRelationship(to: string): string[];
    bulkAddToRelationShip(data: Record<string, string[]>): void;
    addToRelationship(to: string, keys: string | string[]): void;
    removeToRelationship(to: string, keys: string | string[]): void;
    removeRelationship(to: string | string[]): void;
}
