type Invocation = number; interface Profiles { [key: string]: Invocation[]; } export declare class Profiler { private enabled; private data; private counters; constructor(enabled?: boolean); isEnabled(): boolean; setEnabled(enabled: boolean): void; getData(): Profiles; private renderInvocations; private renderCounters; report(): string | undefined; reset(): void; log(key: string, start: number): void; inc(key: string): void; } export declare function getDefaultProfiler(): Profiler; /** * Class decorator that collects profiling data on every method invocation (if GROW_ENABLE_PROFILING is true). */ export declare function Profile(profiler?: Profiler): (target: Function) => void; /** * Function decorator that collects profiling data on every function invocation (if GROW_ENABLE_PROFILING is true). */ export declare const profile: , U>(fn: (...args: T) => U, profiler?: Profiler) => (...args: T) => U; /** * Async function decorator that collects profiling data on every function invocation (if GROW_ENABLE_PROFILING is * true). */ export declare const profileAsync: , U>(fn: (...args: T) => Promise, profiler?: Profiler) => (...args: T) => Promise; export {};