import { Actor } from "./Actor.js"; import { ActorProtocol } from "./ActorProtocol.js"; import { Address } from "./Address.js"; export declare enum SupervisionScope { All = 0, One = 1 } export declare enum SupervisionDirective { Restart = 0, Resume = 1, Stop = 2, Escalate = 3 } export declare abstract class SupervisionStrategy { static DefaultIntensity: number; static ForeverIntensity: number; static DefaultPeriod: number; static ForeverPeriod: number; abstract intensity(): number; abstract period(): number; abstract scope(): SupervisionScope; } export declare class DefaultSupervisionStrategy extends SupervisionStrategy { intensity(): number; period(): number; scope(): SupervisionScope; } export interface Supervised { actor(): ActorProtocol; address(): Address; error(): Error; escalate(): void; restartWithin(period: number, intensity: number, scope: SupervisionScope): void; resume(): void; stop(scope: SupervisionScope): void; supervisor(): Supervisor; suspend(): void; } export interface Supervisor { inform(error: Error, supervised: Supervised): Promise; supervisionStrategy(): Promise; supervisor(): Supervisor; } export declare class StageSupervisedActor implements Supervised { private _protocol; private _actorInstance; private _error; constructor(protocol: ActorProtocol, actor: Actor, error: Error); actor(): ActorProtocol; address(): Address; error(): Error; escalate(): void; restartWithin(_period: number, _intensity: number, scope: SupervisionScope): void; resume(): void; stop(scope: SupervisionScope): void; supervisor(): Supervisor; suspend(): void; private environmentOf; private selfWithSiblings; } //# sourceMappingURL=Supervisor.d.ts.map