import { ISystemMiddleware, ISystemContext } from '@awesome-ecs/abstract/systems';
import { WorkerThreadEntity } from '../entities/index.js';
import '@awesome-ecs/abstract/entities';
import '@awesome-ecs/core/entities';
import '../worker-type-comvmkQN.js';
import '../components/index.js';
import '@awesome-ecs/abstract/components';

declare class WorkerThreadHealthScheduleSystem implements ISystemMiddleware<WorkerThreadEntity> {
    action(context: ISystemContext<WorkerThreadEntity>): void;
    cleanup(context: ISystemContext<WorkerThreadEntity>): void;
}

declare class WorkerThreadMessageSubscriptionSystem implements ISystemMiddleware<WorkerThreadEntity> {
    shouldRun(context: ISystemContext<WorkerThreadEntity>): boolean;
    action(context: ISystemContext<WorkerThreadEntity>): void;
    cleanup(context: ISystemContext<WorkerThreadEntity>): void;
}

declare class WorkerThreadHealthSubscriptionSystem implements ISystemMiddleware<WorkerThreadEntity> {
    action(context: ISystemContext<WorkerThreadEntity>): void;
    cleanup(context: ISystemContext<WorkerThreadEntity>): void;
}

declare class WorkerThreadHealthRequestSystem implements ISystemMiddleware<WorkerThreadEntity> {
    private maxHeartbeatsPending;
    shouldRun(context: ISystemContext<WorkerThreadEntity>): boolean;
    action(context: ISystemContext<WorkerThreadEntity>): void;
    cleanup(context: ISystemContext<WorkerThreadEntity>): void;
    private sendHeartbeatMessage;
}

declare class WorkerThreadHealthResponseSystem implements ISystemMiddleware<WorkerThreadEntity> {
    shouldRun(context: ISystemContext<WorkerThreadEntity>): boolean;
    action(context: ISystemContext<WorkerThreadEntity>): void;
    cleanup(context: ISystemContext<WorkerThreadEntity>): void;
}

export { WorkerThreadHealthRequestSystem, WorkerThreadHealthResponseSystem, WorkerThreadHealthScheduleSystem, WorkerThreadHealthSubscriptionSystem, WorkerThreadMessageSubscriptionSystem };
