import { ProcessManager } from '@omnitron-dev/titan-pm'; import { ProcessStatus } from '@omnitron-dev/titan-pm'; import type { IProcessOptions, IProcessInfo, ServiceProxy, IProcessManagerConfig } from '@omnitron-dev/titan-pm'; export interface ITestProcessManagerConfig extends IProcessManagerConfig { mock?: boolean; controlTime?: boolean; recordOperations?: boolean; } export interface IOperationRecord { type: 'spawn' | 'kill' | 'restart' | 'health' | 'metrics'; processId?: string; processClass?: string; timestamp: number; data?: any; } export declare class TestProcessManager extends ProcessManager { private operations; private simulatedFailures; private simulatedMetrics; private simulatedHealth; private timeOffset; private crashHandlers; private recoveryHandlers; constructor(config?: ITestProcessManagerConfig); private setupTestHandlers; spawn(ProcessClass: new (...args: any[]) => T, options?: IProcessOptions): Promise>; simulateCrash(processOrId: ServiceProxy | string): Promise; waitForRecovery(processOrId: ServiceProxy | string, timeout?: number): Promise; setMetrics(processId: string, metrics: any): void; getMetrics(processId: string): Promise; setHealth(processId: string, health: any): void; getHealth(processId: string): Promise; simulateFailure(operation: string, error: Error): void; clearFailures(): void; advanceTime(ms: number): void; resetTime(): void; getCurrentTime(): number; getOperations(): IOperationRecord[]; clearOperations(): void; verifyOperation(type: string, predicate?: (op: IOperationRecord) => boolean): boolean; waitForOperation(type: string, timeout?: number): Promise; private recordOperation; cleanup(): Promise; spyOnMethod(proxy: ServiceProxy, methodName: keyof T): any; assertProcessState(processId: string, expectedStatus: ProcessStatus): void; getProcessesByClass(ProcessClass: new (...args: any[]) => T): IProcessInfo[]; countByStatus(status: ProcessStatus): number; } export declare function createTestProcessManager(config?: ITestProcessManagerConfig): TestProcessManager;