import { LicenseState, Logger } from '@n8n/backend-common';
import type { WorkflowExecuteBeforeContext, WorkflowExecuteAfterContext, WorkflowExecuteResumeContext, NodeExecuteBeforeContext, NodeExecuteAfterContext } from '@n8n/decorators';
import { ExecutionLevelTracer } from './execution-level-tracer';
import { OtelSettingsService } from './otel-settings.service';
import { OtelService } from './otel.service';
import { TraceContextService } from './tracing-context';
import { OwnershipService } from '../../services/ownership.service';
export declare class OtelLifecycleHandler {
    private readonly tracer;
    private readonly traceContextService;
    private readonly otelService;
    private readonly otelSettingsService;
    private readonly ownershipService;
    private readonly logger;
    private readonly licenseState;
    constructor(tracer: ExecutionLevelTracer, traceContextService: TraceContextService, otelService: OtelService, otelSettingsService: OtelSettingsService, ownershipService: OwnershipService, logger: Logger, licenseState: LicenseState);
    onReloadOtelConfig(): Promise<void>;
    private isPublishedWorkflow;
    private shouldTrace;
    onWorkflowStart(ctx: WorkflowExecuteBeforeContext): Promise<void>;
    onWorkflowResume(ctx: WorkflowExecuteResumeContext): Promise<void>;
    onWorkflowEnd(ctx: WorkflowExecuteAfterContext): void;
    onNodeStart(ctx: NodeExecuteBeforeContext): void;
    onNodeEnd(ctx: NodeExecuteAfterContext): void;
    private areCustomSpanAttributesLicensed;
    private buildWorkflowCustomAttributes;
    private buildProjectCustomAttributes;
    private buildNodeCustomAttributes;
}
export declare function countOutputItems(data: NodeExecuteAfterContext['taskData']['data']): number;
export declare function countInputItems(ctx: NodeExecuteAfterContext): number;
