import { Application } from 'express'; import { Server as HttpServer } from 'http'; import { Server as HttpsServer } from 'https'; import { Logger } from 'pino'; import { SessionStore } from '../store/session-store.interface.js'; import { BrowserPool } from '../puppeteer/pool/browser-pool.js'; import { GrpcServer } from '../grpc/server.js'; import { WSServer } from '../ws/server.js'; export type ServerInstance = HttpServer | HttpsServer; export interface ServerConfig { readonly port: number; readonly host: string; readonly grpcPort: number; readonly grpcHost: string; readonly nodeEnv: string; readonly tlsEnabled: boolean; readonly apiPrefix: string; readonly apiVersion: string; readonly wsPath: string; } export interface ServerDependencies { readonly logger: Logger; readonly sessionStore: SessionStore; readonly browserPool: BrowserPool; readonly config: ServerConfig; } export interface ServerComponents { readonly app: Application; readonly server: ServerInstance; readonly grpcServer: GrpcServer; readonly wsServer?: WSServer; } export interface ServerLifecycleHooks { readonly onBeforeStart?: () => Promise; readonly onAfterStart?: () => Promise; readonly onBeforeShutdown?: () => Promise; readonly onAfterShutdown?: () => Promise; } export interface HealthCheckStatus { readonly status: 'healthy' | 'unhealthy' | 'degraded'; readonly services: Record; readonly uptime: number; readonly version: string; } export type ShutdownSignal = 'SIGTERM' | 'SIGINT' | 'SIGHUP'; export interface ServerStartupResult { readonly success: boolean; readonly httpUrl: string; readonly grpcUrl: string; readonly wsUrl: string; readonly error?: Error; } export interface MiddlewareConfig { readonly enableSecurity: boolean; readonly enableRateLimit: boolean; readonly enableCsrf: boolean; readonly enableCors: boolean; readonly enableCompression: boolean; readonly enableTelemetry: boolean; } export interface RouteConfig { readonly apiPrefix: string; readonly apiVersion: string; readonly enableHealthRoutes: boolean; readonly enableApiRoutes: boolean; } export interface ExtendedServerError extends Error { readonly code?: string; readonly statusCode?: number; readonly context?: Record; } //# sourceMappingURL=types.d.ts.map