import { type InjectionKey } from 'vue';
import { createFrameRegistry, type FrameCallback, type FrameKey, type FrameProfilingSnapshot, type FrameRegistry, type FrameRunTimings, type FrameScheduleSnapshot, type FrameStage, type FrameStageCallback, type FrameTask, type FrameTaskInvalidation, type FrameTaskInvalidationToken, type UseFrameOptions, type UseFrameResult } from '../core/frame-registry.js';
/**
 * Vue injection key used to expose the active frame registry.
 */
export declare const frameRegistryKey: InjectionKey<FrameRegistry>;
export { createFrameRegistry, type FrameCallback, type FrameKey, type FrameProfilingSnapshot, type FrameRegistry, type FrameRunTimings, type FrameScheduleSnapshot, type FrameStage, type FrameStageCallback, type FrameTask, type FrameTaskInvalidation, type FrameTaskInvalidationToken, type UseFrameOptions, type UseFrameResult };
/**
 * Provides a frame registry through Vue provide/inject.
 *
 * @param registry - Frame registry instance to provide to descendants.
 */
export declare function provideFrameRegistry(registry: FrameRegistry): void;
/**
 * Registers a frame callback using an auto-generated task key.
 */
export declare function useFrame(callback: FrameCallback, options?: UseFrameOptions): UseFrameResult;
/**
 * Registers a frame callback with an explicit task key.
 */
export declare function useFrame(key: FrameKey, callback: FrameCallback, options?: UseFrameOptions): UseFrameResult;
//# sourceMappingURL=frame-context.d.ts.map