import { TraceQueryFilter, type TraceData } from '@genkit-ai/tools-common';
import { Mutex } from 'async-mutex';
import { TraceQuery, TraceQueryResponse, TraceStore } from './types';
export declare class LocalFileTraceStore implements TraceStore {
    private readonly storeRoot;
    private readonly indexRoot;
    private mutexes;
    private filters;
    private readonly index;
    static defaultFilters: Record<string, string>;
    constructor(options?: {
        filters?: Record<string, string>;
        storeRoot?: string;
        indexRoot?: string;
        useIndex?: boolean;
    });
    init(): Promise<void>;
    load(id: string): Promise<TraceData | undefined>;
    getMutex(id: string): Mutex;
    save(id: string, rawTrace: TraceData): Promise<void>;
    list(query?: TraceQuery): Promise<TraceQueryResponse>;
    private listFromFiles;
    private filter;
}
export interface IndexSearchResult {
    pageLastIndex?: number;
    data: Record<string, string>[];
}
export declare class Index {
    private indexRoot;
    private currentIndexFile;
    constructor(indexRoot: string);
    add(traceData: TraceData): void;
    search(query: {
        limit: number;
        startFromIndex?: number;
        filter?: TraceQueryFilter;
    }): IndexSearchResult;
}
