/// <reference types="node" />
import { Watcher, Lock, IPutResponse, IDeleteRangeResponse, Lease, Namespace, Etcd3 } from 'etcd3';
import { Observable } from 'rxjs';
import { ResponseFormat } from '../interfaces';
import { Etcd3Manager } from '..';
export declare class Etcd3Service {
    private _manager;
    constructor(_manager: Etcd3Manager);
    readonly basePath: string;
    readonly client: Etcd3;
    readonly namespace: Namespace;
    get(_key: string, format?: ResponseFormat): Observable<string | object | Buffer | number | null | Error>;
    getWithPrefix(_prefix: string): Observable<{
        [key: string]: string;
    }>;
    delete(_key: string): Observable<IDeleteRangeResponse>;
    deleteAll(): Observable<IDeleteRangeResponse>;
    put(_key: string, value: string | number | Object | Buffer, returnResult?: boolean): Observable<IPutResponse | string | number | Object | Buffer>;
    createWatcher(_key: string, prefix?: boolean): Observable<Watcher>;
    acquireLock(_key: string, ttl?: number): Observable<Lock>;
    createLease(ttl?: number): Observable<Lease>;
    createLeaseWithValue(_key: string, value: string | Buffer, ttl?: number): Observable<Lease>;
    close(): void;
}
