/// <reference types="node" />
import { IRangeRequest, IRangeResponse, Rangable, SortOrder, SortTarget } from 'etcd3';
import { NSApplicator, PromiseWrap } from 'etcd3/lib/util';
import { Store } from './store';
export declare class MultiRangeBuilder extends PromiseWrap<any> {
    private readonly store;
    private readonly namespace;
    protected request: IRangeRequest;
    constructor(store: Store, namespace: NSApplicator);
    prefix(value: string | Buffer): this;
    inRange(r: Rangable): this;
    all(): this;
    limit(count: number): this;
    sort(target: keyof typeof SortTarget, order: keyof typeof SortOrder): this;
    count(): Promise<number>;
    keys(encoding?: BufferEncoding): Promise<string[]>;
    keyBuffers(): Promise<Buffer[]>;
    json(): Promise<{
        [key: string]: unknown;
    }>;
    strings(encoding?: BufferEncoding): Promise<{
        [key: string]: string;
    }>;
    numbers(): Promise<{
        [key: string]: number;
    }>;
    buffers(): Promise<{
        [key: string]: Buffer;
    }>;
    exec(): Promise<IRangeResponse>;
    protected createPromise(): Promise<{
        [key: string]: string;
    }>;
    private mapValues;
}
export declare class SingleRangeBuilder {
    private readonly store;
    private readonly namespace;
    protected request: IRangeRequest;
    constructor(store: Store, namespace: NSApplicator, key: string | Buffer);
    json(): Promise<unknown>;
    string(encoding?: BufferEncoding): Promise<string | null>;
    number(): Promise<number | null>;
    buffer(): Promise<Buffer | null>;
    exists(): Promise<boolean>;
    exec(): Promise<IRangeResponse>;
    then(): any;
}
export declare class PutBuilder extends PromiseWrap<any> {
    private readonly store;
    private readonly request;
    constructor(store: Store, key: string | Buffer);
    value(value: string | Buffer | number): this;
    exec(): void;
    protected createPromise(): Promise<void>;
}
