import { BacktraceClient } from './backtraceClient';
import { InitBacktraceClientOptions } from './model/backtraceClientOptions';
import * as btReport from './model/backtraceReport';
import { BacktraceResult } from './model/backtraceResult';
export { BacktraceClient } from './backtraceClient';
export { BacktraceClientOptions, IBacktraceClientOptions, InitBacktraceClientOptions, } from './model/backtraceClientOptions';
export { BacktraceReport as BtReport } from './model/backtraceReport';
export declare const pageStartTime: Date;
/**
 * Initalize Backtrace Client and Backtrace node integration
 * @param configuration Backtrace configuration
 */
export declare function initialize(configuration: InitBacktraceClientOptions): BacktraceClient;
/**
 * Returns used BacktraceClient
 */
export declare function getBacktraceClient(): BacktraceClient | undefined;
export declare function use(client: BacktraceClient): void;
/**
 * Send report asynchronously to Backtrace
 * @param payload report payload
 * @param attributes attributes
 * @param attachment client-provided info sent as attachment with report
 */
export declare function report(payload: (() => void) | Error | string | object, attributes?: object | undefined, attachment?: string | object): Promise<BacktraceResult>;
/**
 * Send report synchronosuly to Backtrace
 * @param data report payload
 * @param attributes attributes
 * @param attachment client-provided info sent as attachment with report
 */
export declare function reportSync(data: Error | string, attributes?: object | undefined, attachment?: string | object): BacktraceResult;
/**
 * Generate BacktraceReport with default configuration
 */
export declare function createReport(): btReport.BacktraceReport;
/**
 * Generate BacktraceReport with default configuration
 */
export declare function BacktraceReport(): btReport.BacktraceReport;
export declare function errorHandlerMiddleware(err: Error, req: any, resp: any, next: any): void;
/**
 * Record an event in the breadcrumbs buffer
 * @param message description of event
 * @param attributes object of values related to event
 * @param timestamp time of event
 * @param level log level
 * @param type type of event (e.g. "USER")
 */
export declare function leaveBreadcrumb(message: string, attributes?: object, timestamp?: number, level?: string, type?: string): void;
