///
import { Application, Component } from '@lakutata/core';
import { Server, Socket } from 'socket.io';
import { RegistryAdapterComponent } from './RegistryAdapterComponent';
import { TClientHandshakeRequest } from '../../types/TClientHandshakeRequest';
import { IValidClientHandshakeRequest } from '../../interfaces/IValidClientHandshakeRequest';
import { Logger } from '@lakutata/core/build/plugins/Logger';
import { TPattern } from '../../types/TPattern';
import { IServiceClientInfo } from '../../interfaces/IServiceClientInfo';
import { IServiceClientInstance } from '../../interfaces/IServiceClientInstance';
import { IPatRun } from '../../interfaces/IPatRun';
import { IServiceInfoObject } from '../../interfaces/IServiceInfoObject';
import { Server as HttpServer } from 'http';
export declare class RegistryComponent extends Component {
protected get Logger(): Logger | undefined;
protected readonly app: Application;
protected readonly registryAdapter: RegistryAdapterComponent;
protected readonly port: () => number;
protected readonly token: () => string;
protected readonly logger: () => boolean;
protected readonly cleanDeathSocketsInterval: number;
protected readonly httpServer: HttpServer;
protected readonly serviceClientMap: Map;
protected server: Server;
protected get services(): IServiceInfoObject;
protected initialize(): Promise;
protected cleanDeathSockets(): Promise;
protected convertPatternsToPatternManager(patterns: TPattern[]): IPatRun;
protected generateServiceClientInstanceByServiceClientInfo(info: IServiceClientInfo): IServiceClientInstance;
protected serviceClientOnlineHandler(socket: Socket): Promise;
protected serviceClientOfflineHandler(appId: string, socket: Socket): Promise;
protected serviceClientHandler(socket: Socket): void;
protected getURLsForHttpInvokePacket(rawInvokePacket: string): Promise;
protected serviceProxyInvokeHandler(proxyRawInvokePacket: string): Promise<{
rawInvokeResult: string;
matchedPattern: TPattern | undefined;
}>;
protected validateClientHandshake(handshakeRequest: TClientHandshakeRequest): Promise;
fetchServices(appId?: string | RegExp): IServiceInfoObject;
}