import type { IRequest } from './Request';
export interface IRequestContext {
    requestId: string;
    traceId?: string;
    userId?: string;
    tenantId?: string;
    startTime: number;
    method: string;
    path: string;
    userAgent?: string;
    status?: number;
    duration?: number;
}
export declare const RequestContext: Readonly<{
    run<T>(context: IRequestContext, callback: () => T): Promise<T>;
    current(): Promise<IRequestContext | undefined>;
    create(req: IRequest): IRequestContext;
    attach(req: IRequest, context: IRequestContext): void;
    get(req: IRequest): IRequestContext | undefined;
    enrich(context: IRequestContext, status: number): IRequestContext;
    setUserId(req: IRequest, userId: string | undefined): void;
    setTenantId(req: IRequest, tenantId: string | undefined): void;
    setTraceId(req: IRequest, traceId: string | undefined): void;
}>;
export default RequestContext;
//# sourceMappingURL=RequestContext.d.ts.map