import type { KvKey, KvListEntry, KvSetOptions, KvValue, KvListSelector, KvListOptions, KvListResponse, KvTransaction } from '@redocly/config';
import type { DatabaseConnection, RepositoryInstanceOptions } from '../../../providers/database/types.js';
import { BaseRepository } from '../../../providers/database/base-repository.js';
export declare const KV_KEY_END_BOUNDARY = "\u0002";
export declare class KvRepository extends BaseRepository {
    #private;
    constructor(dbConnection: DatabaseConnection);
    static create(options: RepositoryInstanceOptions): Promise<KvRepository>;
    sync(): Promise<void>;
    get<T extends KvValue = KvValue>(key: KvKey): Promise<T | null>;
    getMany<T extends KvValue = KvValue>(keys: KvKey[]): Promise<(KvListEntry<T> | null)[]>;
    list<T extends KvValue = KvValue>(selector: KvListSelector, options?: KvListOptions): Promise<KvListResponse<T>>;
    set<T extends KvValue = KvValue>(key: KvKey, value: T, options?: KvSetOptions): Promise<KvListEntry<T> | null>;
    delete(key: KvKey): Promise<void>;
    clearExpired(): Promise<void>;
    transaction<T>(operation: (tx: KvTransaction) => Promise<T>): Promise<T>;
    getTotalStoredEntryBytes(): Promise<number>;
    getStoredEntrySizeByEncodedKey(encodedKey: string): Promise<number>;
}
//# sourceMappingURL=kv-repository.d.ts.map