import type { StorageProvider } from '../storage/storage-provider.js';
import { type TraceSummary } from './traces.js';
import { type Waterfall } from './waterfall.js';
export interface TracesQuery {
    windowMs: number;
    limit?: number;
}
export interface TracesServiceOptions {
    pageSize?: number;
    scanCap?: number;
}
export interface TracesResult {
    traces: TraceSummary[];
    scanned: number;
    truncated: boolean;
}
/** Lists recent distinct OTel traces by grouping stored entries over a window.
 *  Reads the store on demand, content-less — mirrors TimeseriesService. */
export declare class TracesService {
    private readonly storage;
    private readonly pageSize;
    private readonly scanCap;
    constructor(storage: StorageProvider, options?: TracesServiceOptions);
    getTraces(query: TracesQuery): Promise<TracesResult>;
    /**
     * Build a nested span waterfall for ONE trace. Fetches the trace's entries WITH
     * content (labels need it) and reconstructs parent/child nesting from time-
     * interval containment — see {@link buildWaterfall}. Returns `null` when the
     * trace has no entries (e.g. unknown / pruned trace id).
     */
    getWaterfall(traceId: string): Promise<Waterfall | null>;
}
//# sourceMappingURL=traces.service.d.ts.map