import { ExtendedSpan, ExtendedSpanFailedOptions } from "../../api-traces/api/TraceAPI/types.js";
import "../../api-traces/index.js";
import { AttributeValue, Attributes, Exception, Link, Span, SpanContext, SpanStatus, TimeInput } from "@opentelemetry/api";
//#region src/managers/EmbraceTraceManager/EmbraceExtendedSpan.d.ts
/**
 * EmbraceSpan for the most part simply delegates to the underlying Span it receives on initialization so
 * that it satisfies the Span interface. In addition, it gives us a spot where we can implement helpers that are part
 * of the EmbraceSpan interface.
 */
declare class EmbraceExtendedSpan implements ExtendedSpan {
  private readonly _span;
  constructor(span: Span);
  /**
   * Expose attributes by extending OpenTelemetry's ReadableSpan.
   */
  get attributes(): Attributes;
  addEvent(name: string, attributesOrStartTime?: Attributes | TimeInput, startTime?: TimeInput): this;
  addLink(link: Link): this;
  addLinks(links: Link[]): this;
  end(endTime?: TimeInput): void;
  isRecording(): boolean;
  recordException(exception: Exception, time?: TimeInput): void;
  setAttribute(key: string, value: AttributeValue): this;
  setAttributes(attributes: Attributes): this;
  removeAttribute(key: string): this;
  setStatus(status: SpanStatus): this;
  spanContext(): SpanContext;
  updateName(name: string): this;
  fail(options?: ExtendedSpanFailedOptions): void;
}
//#endregion
export { EmbraceExtendedSpan };
//# sourceMappingURL=EmbraceExtendedSpan.d.ts.map