import type { AnyValue, LogAttributes, LogBody, LogRecord, SeverityNumber } from '@opentelemetry/api-logs';
import * as api from '@opentelemetry/api';
import type { InstrumentationScope } from '@opentelemetry/core';
import type { Resource } from '@opentelemetry/resources';
import type { ReadableLogRecord } from './export/ReadableLogRecord';
import type { LoggerProviderSharedState } from './internal/LoggerProviderSharedState';
export declare class LogRecordImpl implements ReadableLogRecord {
    readonly resource: Resource;
    readonly instrumentationScope: InstrumentationScope & {
        attributes?: LogAttributes;
        droppedAttributesCount?: number;
    };
    readonly attributes: LogAttributes;
    private _hrTime;
    private _hrTimeObserved;
    private _spanContext?;
    private _severityText?;
    private _severityNumber?;
    private _body?;
    private _eventName?;
    private _attributesCount;
    private _droppedAttributesCount;
    private _isReadonly;
    private readonly _logRecordLimits;
    get hrTime(): api.HrTime;
    set hrTime(hrTime: api.HrTime);
    get hrTimeObserved(): api.HrTime;
    set hrTimeObserved(hrTimeObserved: api.HrTime);
    get spanContext(): api.SpanContext | undefined;
    set spanContext(spanContext: api.SpanContext | undefined);
    set severityText(severityText: string | undefined);
    get severityText(): string | undefined;
    set severityNumber(severityNumber: SeverityNumber | undefined);
    get severityNumber(): SeverityNumber | undefined;
    set body(body: LogBody | undefined);
    get body(): LogBody | undefined;
    get eventName(): string | undefined;
    set eventName(eventName: string | undefined);
    get droppedAttributesCount(): number;
    constructor(_sharedState: LoggerProviderSharedState, instrumentationScope: InstrumentationScope, logRecord: LogRecord);
    setAttribute(key: string, value?: AnyValue): this;
    setAttributes(attributes: LogAttributes): this;
    setBody(body: LogBody): this;
    setEventName(eventName: string): this;
    setSeverityNumber(severityNumber: SeverityNumber): this;
    setSeverityText(severityText: string): this;
    /**
     * @internal
     * A LogRecordProcessor may freely modify logRecord for the duration of the OnEmit call.
     * If logRecord is needed after OnEmit returns (i.e. for asynchronous processing) only reads are permitted.
     */
    _makeReadonly(): void;
    private _setException;
    private _isLogRecordReadonly;
}
//# sourceMappingURL=LogRecordImpl.d.ts.map