import Star from '../../../lib/star';
import Registry from '../registry';
import BaseStrategy from '../../../lib/strategies/base';
import { LoggerInstance } from '../../../typings/logger';
import EndpointList from '../endpoint/list';
import EventEndpoint from '../endpoint/event';
import Node from '../node';
import ServiceItem from '../service-item';
import Context from '../../../lib/context';
export default class EventCatalog {
    registry: Registry;
    star: Star;
    logger: LoggerInstance;
    StrategyFactory: typeof BaseStrategy;
    events: Array<EndpointList>;
    EndpointFactory: typeof EventEndpoint;
    constructor(registry: Registry, star: Star, StrategyFactory: typeof BaseStrategy);
    add(node: Node, service: ServiceItem, event: any): EndpointList;
    get(eventName: string, groupName: string): EndpointList | undefined;
    getBalancedEndpoints(eventName: string, groups: string | Array<string> | null, ctx: Context): any[];
    getGroups(eventName: string): (string | null)[];
    getAllEndpoints(eventName: string, groupsNames?: Array<string>): any[];
    callEventHandler(ctx: Context): any;
    emitLocalServices(ctx: Context): Promise<any[]>;
    removeByService(service: ServiceItem): void;
    remove(name: string, nodeID: string): void;
    list(options?: {
        onlyLocal?: boolean;
        onlyAvaliable?: boolean;
        skipInterval?: boolean;
        withEndpoints?: boolean;
    }): any[];
}
