snow-flow
Version:
Snow-Flow v3.2.0: Complete ServiceNow Enterprise Suite with 180+ MCP Tools. ATF Testing, Knowledge Management, Service Catalog, Change Management with CAB scheduling, Virtual Agent chatbots with NLU, Performance Analytics KPIs, Flow Designer automation, A
87 lines • 2.19 kB
TypeScript
/**
* Service Discovery Client for Consul Integration
*/
export interface ServiceRegistration {
id: string;
name: string;
address: string;
port: number;
health?: {
http?: string;
tcp?: string;
interval?: string;
timeout?: string;
deregisterAfter?: string;
};
tags?: string[];
meta?: Record<string, string>;
}
export interface ServiceDiscoveryConfig {
consulUrl: string;
timeout: number;
retryAttempts: number;
}
export declare class ServiceDiscoveryClient {
private client;
private logger;
private config;
constructor(config?: Partial<ServiceDiscoveryConfig>);
/**
* Register a service with Consul
*/
register(service: ServiceRegistration): Promise<void>;
/**
* Deregister a service from Consul
*/
deregister(serviceId: string): Promise<void>;
/**
* Discover services by name
*/
discover(serviceName: string, healthy?: boolean): Promise<ServiceInstance[]>;
/**
* List all services
*/
listServices(): Promise<string[]>;
/**
* Get service health status
*/
getServiceHealth(serviceName: string): Promise<ServiceHealth[]>;
/**
* Check if Consul is available
*/
isAvailable(): Promise<boolean>;
/**
* Watch for service changes (simplified polling approach)
*/
watchService(serviceName: string, callback: (services: ServiceInstance[]) => void, interval?: number): () => void;
/**
* COMPATIBILITY FIX: makeRequest method for phantom calls
*/
makeRequest(config: any): Promise<any>;
}
export interface ServiceInstance {
id: string;
name: string;
address: string;
port: number;
tags: string[];
meta: Record<string, string>;
health?: Array<{
status: string;
output: string;
name: string;
}>;
}
export interface ServiceHealth {
serviceId: string;
serviceName: string;
address: string;
port: number;
checks: Array<{
checkId: string;
name: string;
status: string;
output: string;
}>;
}
//# sourceMappingURL=service-discovery-client.d.ts.map