import { Application, Component } from '@lakutata/core'; import { Logger } from '@lakutata/core/build/plugins/Logger'; import { Socket } from 'socket.io-client'; import { Service } from '../../Service'; import { IServiceInfoObject } from '../../interfaces/IServiceInfoObject'; import { FastifyInstance } from 'fastify'; import EventEmitter2 from 'eventemitter2'; export declare class ClientComponent extends Component { protected readonly app: Application; protected readonly service: Service; protected readonly registry: () => string; protected readonly port: () => number; protected readonly token: () => string; protected readonly logger: () => Logger | undefined; protected readonly acceptProtocols: string[]; protected readonly registryPattern: RegExp; protected readonly pingInterval: number; protected readonly eventEmitter: EventEmitter2; protected readonly accessibleTestTimeout: number; protected readonly refreshAccessibleURLsInterval: number; readonly accessibleURLs: Set; protected socket: Socket; protected httpServer: FastifyInstance; protected httpServerURL: string; protected latency: number; protected initialize(): Promise; protected initHttpServer(): Promise; protected getLocalIPAddress(): string; protected initSocket(): Promise; protected ping(): void; connect(): Promise; socketSend(event: string, data: any): boolean; httpRequest(url: string, event: string, data: any, timeout?: number): Promise; socketRequest(event: string, data: any, timeout?: number): Promise; onHttpRequest(event: string, callback: (data: any) => Promise | any): this; onSocketRequest(event: string, callback: (data: any) => Promise | any): this; onSocketMessage(event: string, callback: (data: any) => Promise | void): this; fetchServices(appId?: string | RegExp): Promise; refreshAccessibleURLs(): Promise; }