import type { ProfileClock } from './clock.js'; import { type ProfilerResult } from './errors.js'; import type { ProfileCapture, ProfilePhaseStart, ProfileSkipInput, ProfileSource } from './types.js'; export interface RecorderLimits { readonly frameLimit: number; readonly eventLimit: number; readonly detail?: ProfileDetail; } export type ProfileDetail = 'owner' | 'passes' | 'nested'; export type RecorderPhaseCatalog = Readonly>; export interface RecorderSession { readonly captureId: string; readonly detail: ProfileDetail; beginFrame(frameId: number): ProfilerResult; beginPhase(input: ProfilePhaseStart): ProfilerResult; beginPhase(source: ProfileSource, phase: string): ProfilerResult; endPhase(): ProfilerResult; recordSkip(input: ProfileSkipInput): ProfilerResult; endFrame(): ProfilerResult; finish(): ProfilerResult; } export declare function validateRecorderLimits(limits: RecorderLimits): ProfilerResult; export declare function createRecorder(captureId: string, limits: RecorderLimits, clock: ProfileClock, phaseCatalog: RecorderPhaseCatalog, allocationReport?: { profilerEventObjectAllocations: number; }): ProfilerResult; //# sourceMappingURL=recorder.d.ts.map