import { type Client } from "./client.ts"; export type KvKey = Array; export type KvEntry = { key: KvKey; value: T; versionstamp: string; }; export type KvEntryMaybe = KvEntry | { key: KvKey; value: null; versionstamp: null; }; export type KvCheck = { key: KvKey; versionstamp: string | null; }; export type KvMutation = { type: "set"; key: KvKey; value: unknown; expireIn?: number; } | { type: "delete"; key: KvKey; } | { type: "enqueue"; value: unknown; pathname?: string; delay?: number; keysIfUndelivered?: KvKey[]; backoffSchedule?: number[]; }; export type KvCommitResult = { ok: true; versionstamp: string; }; export type KvCommitError = { ok: false; }; export type KvListSelector = { prefix: KvKey; start?: undefined; end?: undefined; } | { prefix: KvKey; start: KvKey; end?: undefined; } | { prefix: KvKey; start?: undefined; end: KvKey; } | { prefix?: undefined; start: KvKey; end: KvKey; }; export type KvListOptions = { limit?: number; reverse?: boolean; batchSize?: number; }; export type KvListIterator = AsyncIterableIterator>; export declare class Kv { #private; constructor(client: Client); set(key: KvKey, value: unknown, options?: { expireIn?: number; }): Promise; delete(key: KvKey): Promise; get(key: KvKey): Promise>; getMany(keys: [...{ [K in keyof T]: KvKey; }]): Promise<{ [K in keyof T]: KvEntryMaybe; }>; list(selector: KvListSelector, options?: KvListOptions): KvListIterator; atomic(): KvAtomicOperation; } export declare class KvAtomicOperation { #private; constructor(client: Client); check(...checks: KvCheck[]): this; delete(key: KvKey): this; set(key: KvKey, value: unknown, options?: { expireIn?: number; }): this; /** @experimental */ enqueue(value: unknown, options?: { pathname?: string; delay?: number; keysIfUndelivered?: KvKey[]; backoffSchedule?: number[]; }): this; mutate(...mutations: KvMutation[]): this; commit(): Promise; }