///
import { ProfilerActionContract, AbstractProfilerContract } from '@ioc:Adonis/Core/Profiler';
/**
* Abstract class to be extended to add support for timing functions.
*/
export declare abstract class AbstractProfiler implements AbstractProfilerContract {
protected abstract getAction(action: string, data: any): ProfilerActionContract;
/**
* Profile asyncronously. If you are are not passing a callback to this method,
* then consider using [[this.profile]].
*/
profileAsync(action: string, data: any, cb: () => Promise): Promise;
profileAsync(action: string, data?: any): Promise;
/**
* Get a new profiler action instance to time your code. Make sure
* to call the `end` function, when manually managing the actions
*/
profile(action: string, data: any, cb: () => T): T;
profile(action: string, data?: any): ProfilerActionContract;
}