import { type ProfileClock } from './clock.js'; import type { ProfilerError, ProfilerResult } from './errors.js'; import type { RecorderPhaseCatalog } from './recorder.js'; import { type RecorderLimits, type RecorderSession } from './recorder.js'; import type { ProfileAllocationReport, ProfileCapture, ProfileSink } from './types.js'; export interface ProfilerOptions { readonly clock?: ProfileClock; readonly sink?: ProfileSink; readonly enabled?: boolean; readonly phaseCatalog?: RecorderPhaseCatalog; readonly allocationReport?: ProfileAllocationReport; } export type ProfilerCatalogSource = keyof RecorderPhaseCatalog; export interface Profiler { registerPhaseCatalog(source: ProfilerCatalogSource, phases: readonly string[]): ProfilerResult<() => void>; startCapture(limits: RecorderLimits): ProfilerResult; activeCaptureId(): string | undefined; activeSession(): RecorderSession | undefined; latestCapture(): ProfileCapture | undefined; readonly phaseCatalog: RecorderPhaseCatalog; } export declare function createProfiler(options?: ProfilerOptions): Profiler; export type { ProfileCapture, ProfilerError }; //# sourceMappingURL=profiler.d.ts.map