export declare const SystemPhase: Readonly<{
    Platform: "platform";
    Tasks: "tasks";
    Fixed: "fixed";
    Update: "update";
    Scene: "scene";
    Render: "render";
    Present: "present";
    Cleanup: "cleanup";
}>;
export type SystemPhase = (typeof SystemPhase)[keyof typeof SystemPhase];
export interface SchedulerContext {
    readonly phase: SystemPhase;
    readonly fixedStepIndex?: number;
}
export interface ScheduledTask {
    readonly id: string;
    readonly phase: SystemPhase;
    readonly dependsOn?: readonly string[];
    readonly enabled?: boolean;
    run(context: SchedulerContext): void | Promise<void>;
}
export declare class Scheduler {
    private readonly tasks;
    add(task: ScheduledTask): void;
    remove(id: string): void;
    getExecutionPlan(): readonly ScheduledTask[];
    runPhase(phase: SystemPhase, fixedStepIndex?: number): Promise<void>;
    private sortPhase;
}
//# sourceMappingURL=Scheduler.d.ts.map