import { InspectionEvent } from "./inspection.js"; import { ActorSystemInfo, AnyActorRef, Observer, EventObject } from "./types.js"; export interface ScheduledEvent { id: string; event: EventObject; startedAt: number; delay: number; source: AnyActorRef; target: AnyActorRef; } export interface Clock { setTimeout(fn: (...args: any[]) => void, timeout: number): any; clearTimeout(id: any): void; } export interface Scheduler { schedule(source: AnyActorRef, target: AnyActorRef, event: EventObject, delay: number, id: string | undefined): void; cancel(source: AnyActorRef, id: string): void; cancelAll(actorRef: AnyActorRef): void; } export interface ActorSystem { get: (key: K) => T['actors'][K] | undefined; inspect: (observer: Observer) => void; scheduler: Scheduler; getSnapshot: () => { _scheduledEvents: Record; }; start: () => void; _clock: Clock; _logger: (...args: any[]) => void; } export type AnyActorSystem = ActorSystem; export declare function createSystem(rootActor: AnyActorRef, options: { clock: Clock; logger: (...args: any[]) => void; snapshot?: unknown; }): ActorSystem;