/**
 * @fileoverview Implements the IStorageProvider interface for Cloudflare KV.
 * @module src/storage/providers/cloudflare/kvProvider
 */
import type { KVNamespace } from '@cloudflare/workers-types';
import type { IStorageProvider, ListOptions, ListResult, StorageOptions } from '../../../storage/core/IStorageProvider.js';
import type { RequestContext } from '../../../utils/internal/requestContext.js';
export declare class KvProvider implements IStorageProvider {
    private readonly kv;
    constructor(kv: KVNamespace);
    private getKvKey;
    get<T>(tenantId: string, key: string, context: RequestContext): Promise<T | null>;
    set(tenantId: string, key: string, value: unknown, context: RequestContext, options?: StorageOptions): Promise<void>;
    /**
     * Deletes a key from the KV namespace.
     *
     * Note: Cloudflare KV `delete()` is idempotent and does not report whether
     * the key existed. This method always returns `true` on success, which is a
     * backend limitation — the KV API provides no existence check on delete.
     * A pre-delete `get()` would add latency and still be racy under eventual
     * consistency, so we accept the imprecise return value.
     */
    delete(tenantId: string, key: string, context: RequestContext): Promise<boolean>;
    list(tenantId: string, prefix: string, context: RequestContext, options?: ListOptions): Promise<ListResult>;
    getMany<T>(tenantId: string, keys: string[], context: RequestContext): Promise<Map<string, T>>;
    setMany(tenantId: string, entries: Map<string, unknown>, context: RequestContext, options?: StorageOptions): Promise<void>;
    deleteMany(tenantId: string, keys: string[], context: RequestContext): Promise<number>;
    clear(tenantId: string, context: RequestContext): Promise<number>;
}
//# sourceMappingURL=kvProvider.d.ts.map