import { LoggerOptions, DestinationStream } from 'pino'; import { Definition } from './definition'; export type Abilities = { services?: Map; allowServiceEvents?: boolean; }; export type NetronOptions = { id?: string; listenHost?: string; listenPort?: number; taskTimeout?: number; taskOverwriteStrategy?: 'replace' | 'skip' | 'throw'; connectTimeout?: number; requestTimeout?: number; streamTimeout?: number; allowServiceEvents?: boolean; maxReconnectAttempts?: number; discoveryEnabled?: boolean; discoveryRedisUrl?: string; discoveryHeartbeatInterval?: number; discoveryHeartbeatTTL?: number; discoveryPubSubEnabled?: boolean; loggerOptions?: LoggerOptions; loggerDestination?: DestinationStream; loggerContext?: Record; }; export type EventSubscriber = (...args: any[]) => void; export interface ArgumentInfo { index: number; type: string; } export interface MethodInfo { type: string; arguments: ArgumentInfo[]; } export interface PropertyInfo { type: string; readonly: boolean; } export interface ServiceMetadata { name: string; version: string; properties: Record; methods: Record; } export type ServiceExposeEvent = { name: string; version: string; qualifiedName: string; peerId: string; remotePeerId?: string; definition: Definition; }; export type ServiceUnexposeEvent = { name: string; version: string; qualifiedName: string; peerId: string; remotePeerId?: string; defId: string; }; export type PeerConnectEvent = { peerId: string; }; export type PeerDisconnectEvent = { peerId: string; };