import { ActivityMetadata, ActivityType, Consumes } from '../../types/activity';
import { JobState } from '../../types/job';
import { StringAnyType, StringScalarType, StringStringType } from '../../types/serializer';
import { StreamData, StreamRole } from '../../types/stream';
import { Span, Context } from '../../types/telemetry';
declare class TelemetryService {
    span: Span;
    jobSpan: Span;
    config: ActivityType;
    traceId: string | null;
    spanId: string | null;
    appId: string;
    metadata: ActivityMetadata;
    context: JobState;
    leg: number;
    constructor(appId: string, config?: ActivityType, metadata?: ActivityMetadata, context?: JobState);
    /**
     * too chatty for production; only output traces, jobs, triggers and workers
     */
    private shouldCreateSpan;
    private static createNoopSpan;
    getJobParentSpanId(): string | undefined;
    getActivityParentSpanId(leg: number): string | undefined;
    getTraceId(): string | undefined;
    startJobSpan(): TelemetryService;
    /**
     * Traces an activity.
     * @private
     */
    static traceActivity(appId: string, attributes: StringScalarType, activityId: string, traceId: string, spanId: string, index?: number): Promise<boolean>;
    startActivitySpan(leg?: number): TelemetryService;
    startStreamSpan(data: StreamData, role: StreamRole): TelemetryService;
    startSpan(traceId: string, spanId: string, spanName: string, attributes: StringScalarType, bCreate?: boolean): Span;
    mapActivityAttributes(): void;
    setActivityAttributes(attributes: StringScalarType): void;
    setStreamAttributes(attributes: StringScalarType): void;
    setJobAttributes(attributes: StringScalarType): void;
    endJobSpan(): void;
    endActivitySpan(): void;
    endStreamSpan(): void;
    endSpan(span: Span): void;
    getParentSpanContext(): undefined | Context;
    getSpanAttrs(leg: number): StringAnyType;
    getStreamSpanAttrs(input: StreamData): StringAnyType;
    setTelemetryContext(span: Span, leg: number): void;
    setActivityError(message: string): void;
    setStreamError(message: string): void;
    static addTargetTelemetryPaths(consumes: Consumes, config: ActivityType, metadata: ActivityMetadata, leg: number): void;
    static bindJobTelemetryToState(state: StringStringType, config: ActivityType, context: JobState): void;
    static bindActivityTelemetryToState(state: StringAnyType, config: ActivityType, metadata: ActivityMetadata, context: JobState, leg: number): void;
}
export { TelemetryService };
