import { n as WorkerRequestMessage } from "../worker-message-DXmmy8WR.cjs";
import { n as WorkerResponseCallback, r as WorkerExecutionMode, t as IWorkerExecutionStrategy } from "../worker-execution-strategy-D1Znkfbl.cjs";
import { t as WorkerThreadEntity } from "../worker-thread-4tJW_zpp.cjs";
import { n as IWorkerHandlerRegistry, t as IWorkerMessageQueue } from "../worker-queue-fLud9AS4.cjs";
import { t as WorkerPerformanceTracker } from "../worker-performance-tracker-Bl_fF5GF.cjs";
import { IContextRepository, IEntityRepository } from "@awesome-ecs/abstract/entities";
import { ILogger } from "@awesome-ecs/abstract/utils";

//#region src/runtime/strategies/local-execution-strategy.d.ts
declare class LocalExecutionStrategy implements IWorkerExecutionStrategy {
  private readonly handlerRegistry;
  private readonly logger;
  readonly mode = WorkerExecutionMode.local;
  constructor(handlerRegistry: IWorkerHandlerRegistry, logger: ILogger);
  dispatch(message: WorkerRequestMessage<any>, entity: WorkerThreadEntity, onResponse: WorkerResponseCallback): void;
}
//#endregion
//#region src/runtime/strategies/web-worker-strategy.d.ts
declare class WebWorkerExecutionStrategy implements IWorkerExecutionStrategy {
  private readonly logger;
  readonly mode = WorkerExecutionMode.worker;
  constructor(logger: ILogger);
  dispatch(message: WorkerRequestMessage<any>, entity: WorkerThreadEntity): void;
}
//#endregion
//#region src/runtime/worker-runtime.d.ts
declare class WorkerSystemRuntime {
  private readonly workerMessageQueue;
  private readonly entityRepository;
  private readonly logger;
  private readonly strategy;
  private readonly contextRepository?;
  private readonly performanceTracker?;
  private readonly onResponse;
  constructor(workerMessageQueue: IWorkerMessageQueue, entityRepository: IEntityRepository, logger: ILogger, strategy: IWorkerExecutionStrategy, contextRepository?: IContextRepository, performanceTracker?: WorkerPerformanceTracker);
  runTick(): void;
  private flushQueueWaitTimes;
  private findAvailableWorker;
}
//#endregion
export { LocalExecutionStrategy, WebWorkerExecutionStrategy, WorkerSystemRuntime };
//# sourceMappingURL=index.d.cts.map