import { Request } from 'express';
export interface TraceContext {
    traceId: string;
    spanId: string;
    parentSpanId?: string;
    region: string;
    service: string;
    instance: string;
    workflowId?: string;
    activityId?: string;
}
export declare const TRACE_HEADERS: {
    readonly TRACE_ID: "X-Trace-Id";
    readonly SPAN_ID: "X-Span-Id";
    readonly PARENT_SPAN_ID: "X-Parent-Span-Id";
    readonly REQUEST_ID: "X-Request-Id";
};
export declare class TraceContextService {
    private readonly region;
    private readonly service;
    private readonly instance;
    constructor();
    createContext(): TraceContext;
    extractOrCreate(request: Request): TraceContext;
    createChildContext(parentContext: TraceContext): TraceContext;
    toHeaders(context: TraceContext): Record<string, string>;
    generateTraceId(): string;
    generateSpanId(): string;
    generateRequestId(): string;
    private generateRandom;
    getRegion(): string;
    getService(): string;
    getInstance(): string;
}
