import { LogSeverity } from "../../api-logs/manager/types.js";
import "../../api-logs/index.js";
import { EmbraceLimitManagerArgs, LengthLimitedType, LimitManagerInternal, LimitedBreadcrumb, LimitedException, LimitedLog, LimitedUserSessionProperty } from "./types.js";
import { AttributeValue } from "@opentelemetry/api";
import { ReadableSpan } from "@opentelemetry/sdk-trace";
//#region src/managers/EmbraceLimitManager/EmbraceLimitManager.d.ts
declare class EmbraceLimitManager implements LimitManagerInternal {
  private readonly _diag;
  private _diagnosticCounts;
  private _currentCount;
  private readonly _maxAllowed;
  private readonly _maxLength;
  private readonly _maxAttributes;
  constructor({ diag: diagParam, maxAllowed, maxLength, maxAttributes }: EmbraceLimitManagerArgs);
  private _dropIfMaxReached;
  truncateString(type: LengthLimitedType, body: string): string;
  private _truncateAttributes;
  limitUserTimingEntry(entryType: 'mark' | 'measure'): boolean;
  limitElementTimingEntry(): boolean;
  limitServerTimingEntry(): boolean;
  limitSoftNavigationEntry(): boolean;
  limitBreadcrumb(name: string): LimitedBreadcrumb | 'dropped';
  limitException(message: string, attributes: Record<string, AttributeValue | undefined>): LimitedException | 'dropped';
  limitLog(message: string, severity: LogSeverity, attributes: Record<string, AttributeValue | undefined>): LimitedLog | 'dropped';
  limitUserSessionProperty(key: string, value: string): LimitedUserSessionProperty | 'dropped';
  dropReadableSpan(span: ReadableSpan): boolean;
  reset(): void;
  private _incrDiagnosticCount;
  getDiagnosticCounts(): Record<string, number>;
}
//#endregion
export { EmbraceLimitManager };
//# sourceMappingURL=EmbraceLimitManager.d.ts.map