export interface ProfilerMarker {
    readonly name: string;
    readonly startMs: number;
    readonly endMs: number;
    readonly durationMs: number;
    readonly depth: number;
}
export interface ProfilerSnapshot {
    readonly markerCount: number;
    readonly totalDurationMs: number;
    readonly markers: readonly ProfilerMarker[];
}
export declare class Profiler {
    private readonly now;
    private readonly active;
    private readonly markers;
    constructor(now?: () => number);
    begin(name: string): void;
    end(name?: string): ProfilerMarker;
    measure<T>(name: string, fn: () => T): T;
    snapshot(): ProfilerSnapshot;
    reset(): void;
}
//# sourceMappingURL=Profiler.d.ts.map