import { Repository } from "./Repository.js";
import { Lock } from "async-await-mutex-lock";
import { RedisClientType } from "redis";
import { Member } from "@treecg/types";
import { Bucket, Record, Relation } from "../extractor.js";
export declare class RedisRepository implements Repository {
    protected url: string;
    protected metadata: string;
    protected data: string;
    protected index: string;
    protected client: RedisClientType;
    protected logger: import("winston").Logger;
    protected lock: Lock<unknown>;
    constructor(url: string, metadata: string, data: string, index: string);
    open(): Promise<void>;
    close(): Promise<void>;
    ingestMetadata(type: string, id: string, value: string): Promise<void>;
    findMetadataFragmentations(): Promise<Member[]>;
    createIndices(): Promise<void>;
    prepareDataBulk(): Promise<string | null>[];
    ingestDataBulk(bulk: Promise<string | null>[]): Promise<void>;
    handleRecord(record: Record, data: string, bulk: Promise<string | null>[]): Promise<void>;
    prepareIndexBulk(): Promise<string | number | null>[];
    ingestIndexBulk(bulk: Promise<string | number | null>[]): Promise<void>;
    handleMember(record: Record, bucket: string, bulk: Promise<string | number | null>[]): Promise<void>;
    handleBucket(bucket: Bucket, bulk: Promise<string | number | null>[]): Promise<void>;
    handleRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: Promise<string | number | null>[]): Promise<void>;
    removeRelation(relation: Relation, path: string | undefined, value: string | undefined, bulk: Promise<string | number | null>[]): Promise<void>;
    getStoreType(): string;
}
