import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { AxiosRequestConfig } from 'axios';
import { NacosLogger } from '../nacos.logger';
import { NacosNamingConfig } from './nacos.naming.interface';
import { NacosInstance, NacosInstanceOptions } from '../instance';
export declare class NacosNamingService implements OnModuleInit, OnModuleDestroy {
    private options;
    private namingClient;
    private logger;
    constructor(options: NacosNamingConfig);
    onModuleInit(): Promise<void>;
    onModuleDestroy(): Promise<void>;
    registerInstance(serviceName: string, instance: NacosInstanceOptions, groupName?: string): Promise<void>;
    deregisterInstance(serviceName: string, instance: NacosInstanceOptions, groupName?: string): Promise<void>;
    getAllInstances(serviceName: string, groupName?: string, clusters?: string, subscribe?: boolean): Promise<NacosInstance[]>;
    selectInstances(serviceName: string, groupName?: string, clusters?: string, healthy?: boolean, subscribe?: boolean): Promise<NacosInstance[]>;
    getServerStatus(): Promise<"UP" | "DOWN">;
    subscribe(info: string | {
        serviceName: string;
        groupName?: string;
        clusters?: string;
    }, listener?: (instances: NacosInstance[], logger: NacosLogger) => void): any;
    unSubscribe(info: string | {
        serviceName: string;
        groupName?: string;
        clusters?: string;
    }, listener?: (instances: NacosInstance[], logger: NacosLogger) => void): any;
    selectOneHealthyInstance(serviceName: string, groupName?: string, clusters?: string): Promise<NacosInstance>;
    axiosRequestInterceptor(): (config: AxiosRequestConfig) => Promise<AxiosRequestConfig>;
}
