import { StorageDomain } from '../base.js';
import type { GetEntityTypesArgs, GetEntityTypesResponse, GetEntityNamesArgs, GetEntityNamesResponse, GetServiceNamesArgs, GetServiceNamesResponse, GetEnvironmentsArgs, GetEnvironmentsResponse, GetTagsArgs, GetTagsResponse, GetMetricNamesArgs, GetMetricNamesResponse, GetMetricLabelKeysArgs, GetMetricLabelKeysResponse, GetMetricLabelValuesArgs, GetMetricLabelValuesResponse } from './discovery.js';
import type { BatchCreateFeedbackArgs, CreateFeedbackArgs, ListFeedbackArgs, ListFeedbackResponse, GetFeedbackAggregateArgs, GetFeedbackAggregateResponse, GetFeedbackBreakdownArgs, GetFeedbackBreakdownResponse, GetFeedbackTimeSeriesArgs, GetFeedbackTimeSeriesResponse, GetFeedbackPercentilesArgs, GetFeedbackPercentilesResponse } from './feedback.js';
import type { BatchCreateLogsArgs, ListLogsArgs, ListLogsResponse } from './logs.js';
import type { BatchCreateMetricsArgs, ListMetricsArgs, ListMetricsResponse, GetMetricAggregateArgs, GetMetricAggregateResponse, GetMetricBreakdownArgs, GetMetricBreakdownResponse, GetMetricTimeSeriesArgs, GetMetricTimeSeriesResponse, GetMetricPercentilesArgs, GetMetricPercentilesResponse } from './metrics.js';
import type { BatchCreateScoresArgs, CreateScoreArgs, ListScoresArgs, ListScoresResponse, GetScoreAggregateArgs, GetScoreAggregateResponse, GetScoreBreakdownArgs, GetScoreBreakdownResponse, GetScoreTimeSeriesArgs, GetScoreTimeSeriesResponse, GetScorePercentilesArgs, GetScorePercentilesResponse } from './scores.js';
import type { BatchCreateSpansArgs, BatchDeleteTracesArgs, BatchUpdateSpansArgs, CreateSpanArgs, GetRootSpanArgs, GetRootSpanResponse, GetSpanArgs, GetSpanResponse, GetTraceArgs, GetTraceResponse, GetTraceLightResponse, ListTracesArgs, ListTracesResponse, UpdateSpanArgs } from './tracing.js';
import type { ObservabilityStorageStrategy, TracingStorageStrategy } from './types.js';
/**
 * Base storage class for observability data (traces, metrics, logs, scores, feedback).
 * Not abstract -- provides default implementations that throw "not implemented" errors.
 * Storage adapters override only the methods they support.
 */
export declare class ObservabilityStorage extends StorageDomain {
    constructor();
    dangerouslyClearAll(): Promise<void>;
    /**
     * Provides hints for tracing strategy selection by the DefaultExporter.
     * Storage adapters can override this to specify their preferred and supported strategies.
     */
    get observabilityStrategy(): {
        preferred: ObservabilityStorageStrategy;
        supported: ObservabilityStorageStrategy[];
    };
    /**
     * Provides hints for tracing strategy selection by the DefaultExporter.
     * Storage adapters can override this to specify their preferred and supported strategies.
     * @deprecated Use {@link observabilityStrategy} instead.
     * @see {@link observabilityStrategy} for the replacement property.
     */
    get tracingStrategy(): {
        preferred: TracingStorageStrategy;
        supported: TracingStorageStrategy[];
    };
    /**
     * Reports the tracing strategy currently in effect for this attached observability store.
     *
     * Single-strategy stores can rely on the default implementation. Multi-strategy stores
     * should override this getter only when they can determine the actual configured mode
     * from storage-owned configuration, not exporter state.
     */
    get runtimeTracingStrategy(): TracingStorageStrategy | undefined;
    /**
     * Creates a single Span record in the storage provider.
     */
    createSpan(_args: CreateSpanArgs): Promise<void>;
    /**
     * Updates a single Span with partial data. Primarily used for realtime trace creation.
     *
     * @deprecated This method only works with stores that support span updates,
     * It will be removed in the future. Instead try to add all data to a span before
     * ending it.
     */
    updateSpan(_args: UpdateSpanArgs): Promise<void>;
    /**
     * Retrieves a single span.
     */
    getSpan(_args: GetSpanArgs): Promise<GetSpanResponse | null>;
    /**
     * Retrieves a single root span.
     */
    getRootSpan(_args: GetRootSpanArgs): Promise<GetRootSpanResponse | null>;
    /**
     * Retrieves a single trace with all its associated spans.
     */
    getTrace(_args: GetTraceArgs): Promise<GetTraceResponse | null>;
    /**
     * Retrieves a lightweight trace with only the fields needed for timeline rendering.
     * Excludes heavy fields: input, output, attributes, metadata, tags, links.
     */
    getTraceLight(_args: GetTraceArgs): Promise<GetTraceLightResponse | null>;
    /**
     * Retrieves a list of traces with optional filtering.
     */
    listTraces(_args: ListTracesArgs): Promise<ListTracesResponse>;
    /**
     * Creates multiple Spans in a single batch.
     */
    batchCreateSpans(_args: BatchCreateSpansArgs): Promise<void>;
    /**
     * Updates multiple Spans in a single batch.
     */
    batchUpdateSpans(_args: BatchUpdateSpansArgs): Promise<void>;
    /**
     * Deletes multiple traces and all their associated spans in a single batch operation.
     */
    batchDeleteTraces(_args: BatchDeleteTracesArgs): Promise<void>;
    /**
     * Creates multiple log records in a single batch.
     */
    batchCreateLogs(_args: BatchCreateLogsArgs): Promise<void>;
    /**
     * Retrieves a list of logs with optional filtering.
     */
    listLogs(_args: ListLogsArgs): Promise<ListLogsResponse>;
    /**
     * Creates multiple metric observations in a single batch.
     */
    batchCreateMetrics(_args: BatchCreateMetricsArgs): Promise<void>;
    listMetrics(_args: ListMetricsArgs): Promise<ListMetricsResponse>;
    getMetricAggregate(_args: GetMetricAggregateArgs): Promise<GetMetricAggregateResponse>;
    getMetricBreakdown(_args: GetMetricBreakdownArgs): Promise<GetMetricBreakdownResponse>;
    getMetricTimeSeries(_args: GetMetricTimeSeriesArgs): Promise<GetMetricTimeSeriesResponse>;
    getMetricPercentiles(_args: GetMetricPercentilesArgs): Promise<GetMetricPercentilesResponse>;
    getMetricNames(_args: GetMetricNamesArgs): Promise<GetMetricNamesResponse>;
    getMetricLabelKeys(_args: GetMetricLabelKeysArgs): Promise<GetMetricLabelKeysResponse>;
    getMetricLabelValues(_args: GetMetricLabelValuesArgs): Promise<GetMetricLabelValuesResponse>;
    getEntityTypes(_args: GetEntityTypesArgs): Promise<GetEntityTypesResponse>;
    getEntityNames(_args: GetEntityNamesArgs): Promise<GetEntityNamesResponse>;
    getServiceNames(_args: GetServiceNamesArgs): Promise<GetServiceNamesResponse>;
    getEnvironments(_args: GetEnvironmentsArgs): Promise<GetEnvironmentsResponse>;
    getTags(_args: GetTagsArgs): Promise<GetTagsResponse>;
    /**
     * Creates a single score record.
     */
    createScore(_args: CreateScoreArgs): Promise<void>;
    /**
     * Creates multiple score observations in a single batch.
     */
    batchCreateScores(_args: BatchCreateScoresArgs): Promise<void>;
    /**
     * Retrieves a list of scores with optional filtering.
     */
    listScores(_args: ListScoresArgs): Promise<ListScoresResponse>;
    getScoreAggregate(_args: GetScoreAggregateArgs): Promise<GetScoreAggregateResponse>;
    getScoreBreakdown(_args: GetScoreBreakdownArgs): Promise<GetScoreBreakdownResponse>;
    getScoreTimeSeries(_args: GetScoreTimeSeriesArgs): Promise<GetScoreTimeSeriesResponse>;
    getScorePercentiles(_args: GetScorePercentilesArgs): Promise<GetScorePercentilesResponse>;
    /**
     * Creates a single feedback record.
     */
    createFeedback(_args: CreateFeedbackArgs): Promise<void>;
    /**
     * Creates multiple feedback observations in a single batch.
     */
    batchCreateFeedback(_args: BatchCreateFeedbackArgs): Promise<void>;
    /**
     * Retrieves a list of feedback with optional filtering.
     */
    listFeedback(_args: ListFeedbackArgs): Promise<ListFeedbackResponse>;
    getFeedbackAggregate(_args: GetFeedbackAggregateArgs): Promise<GetFeedbackAggregateResponse>;
    getFeedbackBreakdown(_args: GetFeedbackBreakdownArgs): Promise<GetFeedbackBreakdownResponse>;
    getFeedbackTimeSeries(_args: GetFeedbackTimeSeriesArgs): Promise<GetFeedbackTimeSeriesResponse>;
    getFeedbackPercentiles(_args: GetFeedbackPercentilesArgs): Promise<GetFeedbackPercentilesResponse>;
}
//# sourceMappingURL=base.d.ts.map