import { OptionsOfJSONResponseBody } from 'got';
import { Observer } from '../Observer';
import { INodeDescription, IRegisterEntityPayload, IServiceHealthDescription, IServiceMap } from './types';
export declare class Catalog {
    private client;
    private consulAddresses;
    private baseOptions;
    private watchMap;
    private maxRetries;
    constructor(consulAddresses?: Array<string>, baseOptions?: OptionsOfJSONResponseBody, maxRetries?: number);
    registerEntity(service: IRegisterEntityPayload, requestOptions?: OptionsOfJSONResponseBody): Promise<boolean>;
    listNodes(requestOptions?: OptionsOfJSONResponseBody): Promise<Array<INodeDescription>>;
    listServices(requestOptions?: OptionsOfJSONResponseBody): Promise<IServiceMap>;
    listNodesForService(serviceName: string, requestOptions?: OptionsOfJSONResponseBody): Promise<Array<IServiceHealthDescription>>;
    resolveAddress(serviceName: string, requestOptions?: OptionsOfJSONResponseBody): Promise<string>;
    ignoreAddress(serviceName: string): void;
    watchAddress(serviceName: string, requestOptions?: OptionsOfJSONResponseBody): Observer<string>;
}
