import type { FrameProfilingSnapshot, FrameRegistry, FrameRunTimings, FrameScheduleSnapshot } from './frame-registry.js';
/**
 * Public scheduler control surface shared by framework adapters.
 */
export type MotionGPUScheduler = Pick<FrameRegistry, 'createStage' | 'getStage' | 'setDiagnosticsEnabled' | 'getDiagnosticsEnabled' | 'getLastRunTimings' | 'getSchedule' | 'setProfilingEnabled' | 'setProfilingWindow' | 'resetProfiling' | 'getProfilingEnabled' | 'getProfilingWindow' | 'getProfilingSnapshot'>;
/**
 * Named scheduler presets exposed from advanced entrypoints.
 */
export type SchedulerPreset = 'balanced' | 'debug' | 'performance';
/**
 * Resolved scheduler timing configuration.
 *
 * Note: diagnostics and profiling currently share one internal toggle in the frame registry.
 */
export interface SchedulerPresetConfig {
    diagnosticsEnabled: boolean;
    profilingEnabled: boolean;
    profilingWindow: number;
}
/**
 * Optional overrides applied on top of a named scheduler preset.
 */
export interface ApplySchedulerPresetOptions {
    diagnosticsEnabled?: boolean;
    profilingEnabled?: boolean;
    profilingWindow?: number;
}
/**
 * Snapshot payload useful for scheduler diagnostics UIs and debug tooling.
 */
export interface SchedulerDebugSnapshot {
    diagnosticsEnabled: boolean;
    profilingEnabled: boolean;
    profilingWindow: number;
    schedule: FrameScheduleSnapshot;
    lastRunTimings: FrameRunTimings | null;
    profilingSnapshot: FrameProfilingSnapshot | null;
}
/**
 * Applies a named scheduler preset to the runtime scheduler instance.
 *
 * Returns resolved values after overrides for easy logging/telemetry.
 */
export declare function applySchedulerPreset(scheduler: MotionGPUScheduler, preset: SchedulerPreset, options?: ApplySchedulerPresetOptions): SchedulerPresetConfig;
/**
 * Captures an aggregate scheduler diagnostics snapshot.
 */
export declare function captureSchedulerDebugSnapshot(scheduler: MotionGPUScheduler): SchedulerDebugSnapshot;
//# sourceMappingURL=scheduler-helpers.d.ts.map