import { LogSeverity } from "../../api-logs/manager/types.cjs";
import { EmbraceLimitManagerArgs, LengthLimitedType, LimitManagerInternal, LimitedBreadcrumb, LimitedException, LimitedLog, LimitedSessionProperty } from "./types.cjs";
import { AttributeValue } from "@opentelemetry/api";
import { ReadableSpan } from "@opentelemetry/sdk-trace-web";

//#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;
  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';
  limitSessionProperty(key: string, value: string): LimitedSessionProperty | 'dropped';
  dropReadableSpan(span: ReadableSpan): boolean;
  reset(): void;
  private _incrDiagnosticCount;
  getDiagnosticCounts(): Record<string, number>;
}
//#endregion
export { EmbraceLimitManager };
//# sourceMappingURL=EmbraceLimitManager.d.cts.map