/**
 * `TraceAnalysisStore` — read-side interface the trace-analyst calls
 * through. Six operations, all bounded:
 *
 *   - `getOverview(filters?)` — dataset rollup + sample trace ids.
 *   - `queryTraces(filters?, limit, offset)` — paginated summaries.
 *   - `countTraces(filters?)` — cheap count without materialisation.
 *   - `viewTrace(trace_id, perAttrCap)` — full span list, oversized → summary.
 *   - `viewSpans(trace_id, span_ids, perAttrCap)` — surgical span fetch.
 *   - `searchTrace(trace_id, regex, max_matches)` — bounded regex hits.
 *   - `searchSpan(trace_id, span_id, regex, max_matches)` — single-span search.
 *
 * Multiple implementations ship in the core (`OtlpFileTraceStore`).
 * Downstream callers can supply their own — e.g. a DuckDB-backed
 * adapter or an in-memory adapter for tests — by implementing this
 * interface.
 *
 * Filters compose with AND semantics. Empty/undefined fields impose
 * no constraint. `regex_pattern` is the only opt-in raw-bytes scan —
 * implementations may skip it via `count`/`overview` when not set.
 */
import type { DatasetOverview, QueryTracesPage, SearchSpanResult, SearchTraceResult, TraceAnalystFilters, ViewSpansResult, ViewTraceResult } from './types';
export interface TraceAnalysisStore {
    getOverview(filters?: TraceAnalystFilters): Promise<DatasetOverview>;
    queryTraces(opts: {
        filters?: TraceAnalystFilters;
        limit: number;
        offset?: number;
    }): Promise<QueryTracesPage>;
    countTraces(filters?: TraceAnalystFilters): Promise<number>;
    viewTrace(opts: {
        trace_id: string;
        /** Override per-attribute byte cap. Defaults to discovery budget. */
        per_attribute_byte_cap?: number;
    }): Promise<ViewTraceResult>;
    viewSpans(opts: {
        trace_id: string;
        span_ids: readonly string[];
        /** Override per-attribute byte cap. Defaults to surgical budget. */
        per_attribute_byte_cap?: number;
    }): Promise<ViewSpansResult>;
    searchTrace(opts: {
        trace_id: string;
        regex_pattern: string;
        /** Hard cap on matches returned. Default 50. */
        max_matches?: number;
    }): Promise<SearchTraceResult>;
    searchSpan(opts: {
        trace_id: string;
        span_id: string;
        regex_pattern: string;
        max_matches?: number;
    }): Promise<SearchSpanResult>;
}
/** Compile a regex with the same anchoring + flags semantics across
 *  implementations. Throws on invalid pattern — callers should surface
 *  that to the agent so it can refine instead of looping. */
export declare function compileSearchRegex(pattern: string): RegExp;
/** Truncate string payload deterministically for tool responses.
 *  Marker is parseable so downstream consumers can detect truncation
 *  and decide whether to fetch surgically. */
export declare function truncateForBudget(value: string, byteCap: number): string;
//# sourceMappingURL=store.d.ts.map