import type { AttributeValue, Span } from '@opentelemetry/api';
export type TracePayloadContentType = 'application/json' | 'text/plain';
export interface TracePayload {
    key: string;
    contentType: TracePayloadContentType;
    value: string;
    sizeBytes: number;
}
export interface OmittedTracePayload {
    key: string;
    reason: 'too_large';
    sizeBytes: number;
    maxSizeBytes: number;
}
export interface PreparedAttribute {
    attribute: AttributeValue;
    payload?: TracePayload;
    omittedPayload?: OmittedTracePayload;
}
export declare function prepareTraceAttribute(key: string, value: unknown, maxLength?: number): PreparedAttribute;
export declare function prepareTraceAttributes(attributes: Record<string, unknown>, getLimit?: (key: string) => number | undefined): {
    attributes: Record<string, AttributeValue>;
    payloads: TracePayload[];
    omittedPayloads: OmittedTracePayload[];
};
export declare function registerSpanPayloads(span: object, payloads: TracePayload[]): void;
export declare function registerSpanOmittedPayloads(span: object, omittedPayloads: OmittedTracePayload[]): void;
export declare function getSpanPayloads(span: object): TracePayload[];
export declare function getSpanOmittedPayloads(span: object): OmittedTracePayload[];
export declare function setSpanAttributeWithPayload(span: Span, key: string, value: unknown, maxLength?: number): AttributeValue;
//# sourceMappingURL=trace-payloads.d.ts.map