survey-mcp-server
Version:
Survey management server handling survey creation, response collection, analysis, and reporting with database access for data management
58 lines (57 loc) • 2.37 kB
TypeScript
export { BaseService, CircuitBreaker, RetryHandler, CircuitBreakerConfig, RetryConfig, HealthCheckResult, CircuitBreakerState, ServiceConfig, defaultServiceConfig } from './base.js';
export { DatabaseService, databaseService, DatabaseQuery, DatabaseUpdateQuery, DatabaseDeleteQuery, QueryResult, ConnectionPoolStats } from './database.js';
export { SearchService, searchService, SearchQuery, SearchResult, SearchHit, FacetCount, GroupedHit, IndexInfo } from './search.js';
export { ExternalApiService, externalApiService, ApiEndpoint, ApiRequest, ApiResponse, RateLimitState } from './external-api.js';
import { DatabaseService } from './database.js';
import { SearchService } from './search.js';
import { ExternalApiService } from './external-api.js';
import { BaseService } from './base.js';
export interface ServiceManagerConfig {
enableHealthMonitoring?: boolean;
healthCheckInterval?: number;
shutdownTimeout?: number;
}
export interface SystemHealthReport {
isHealthy: boolean;
timestamp: Date;
services: {
[serviceName: string]: {
isHealthy: boolean;
status: string;
responseTime?: number;
error?: string;
lastCheck: Date;
metrics?: any;
};
};
summary: {
totalServices: number;
healthyServices: number;
unhealthyServices: number;
overallSuccessRate: number;
};
}
export declare class ServiceManager {
private static instance;
private services;
private healthMonitoringInterval;
private config;
private isShuttingDown;
private constructor();
static getInstance(config?: ServiceManagerConfig): ServiceManager;
initialize(): Promise<void>;
registerService(name: string, service: BaseService): void;
getService<T extends BaseService>(name: string): T | undefined;
getDatabaseService(): DatabaseService;
getSearchService(): SearchService;
getExternalApiService(): ExternalApiService;
getSystemHealth(): Promise<SystemHealthReport>;
private startHealthMonitoring;
private stopHealthMonitoring;
resetAllCircuitBreakers(): Promise<void>;
gracefulShutdown(): Promise<void>;
getServiceList(): string[];
isServiceRegistered(name: string): boolean;
getServiceCount(): number;
}
export declare const serviceManager: ServiceManager;