/** * Enqueues a job and drains all pending jobs synchronously. * * Each job is queued at most once until it starts running. If the same job schedules itself again while it is currently executing, then * it is appended again and runs after the current pass. * * @param job - The job to enqueue. */ export declare function scheduleJob(job: () => void): void; /** * Runs a function while deferring scheduler flushing until the outermost batch completes. * * Jobs scheduled inside the batch are still queued immediately, but eager computations are only drained once after the batch finishes. * * @param func - The function to execute inside the batch. * @returns The value returned by `func`. */ export declare function batch(func: () => T): T;