import { Renderer } from "../renderer"; /** * Supply so the yield operator knows when to execute stuff */ export declare enum YieldType { START_OF_FRAME = 0, END_OF_FRAME = 1 } /** * Provides the ability to delay execution of an operation/function to the different * parts of the Rendering Pipeline */ export declare class YieldQueue { private readonly _queueStart; private readonly _queueEnd; private readonly _renderer; constructor(renderer: Renderer); /** * Execute an operation at the start of the next frame */ get next(): Promise; /** * Execute an operation at the end of the current frame */ get last(): Promise; /** * Execute an operation at the specified point in time * * YieldType.START_OF_FRAME - executes an operation at the start of the next frame * YieldType.END_OF_FRAME - executes an operation at the end of the current frame * * @param yieldType - when the operation should execute */ exec(yieldType?: YieldType): Promise; /** * Executed by the renderer at start of a frame */ _flushStart(): void; /** * Executed by the renderer at end of a frame */ _flushEnd(): void; }