import { type TraceData } from '@genkit-ai/tools-common';
import * as z from 'zod';
export declare const TraceQuerySchema: z.ZodObject<{
    limit: z.ZodOptional<z.ZodNumber>;
    continuationToken: z.ZodOptional<z.ZodString>;
    filter: z.ZodOptional<z.ZodObject<{
        eq: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>>>;
        neq: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>>>;
        gt: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
        gte: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
        lt: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
        lte: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
        contains: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">]>>>;
    }, "strip", z.ZodTypeAny, {
        eq?: Record<string, string | number | (string | number)[]> | undefined;
        neq?: Record<string, string | number | (string | number)[]> | undefined;
        gte?: Record<string, number> | undefined;
        gt?: Record<string, number> | undefined;
        lte?: Record<string, number> | undefined;
        lt?: Record<string, number> | undefined;
        contains?: Record<string, string | number | (string | number)[]> | undefined;
    }, {
        eq?: Record<string, string | number | (string | number)[]> | undefined;
        neq?: Record<string, string | number | (string | number)[]> | undefined;
        gte?: Record<string, number> | undefined;
        gt?: Record<string, number> | undefined;
        lte?: Record<string, number> | undefined;
        lt?: Record<string, number> | undefined;
        contains?: Record<string, string | number | (string | number)[]> | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    continuationToken?: string | undefined;
    limit?: number | undefined;
    filter?: {
        eq?: Record<string, string | number | (string | number)[]> | undefined;
        neq?: Record<string, string | number | (string | number)[]> | undefined;
        gte?: Record<string, number> | undefined;
        gt?: Record<string, number> | undefined;
        lte?: Record<string, number> | undefined;
        lt?: Record<string, number> | undefined;
        contains?: Record<string, string | number | (string | number)[]> | undefined;
    } | undefined;
}, {
    continuationToken?: string | undefined;
    limit?: number | undefined;
    filter?: {
        eq?: Record<string, string | number | (string | number)[]> | undefined;
        neq?: Record<string, string | number | (string | number)[]> | undefined;
        gte?: Record<string, number> | undefined;
        gt?: Record<string, number> | undefined;
        lte?: Record<string, number> | undefined;
        lt?: Record<string, number> | undefined;
        contains?: Record<string, string | number | (string | number)[]> | undefined;
    } | undefined;
}>;
export type TraceQuery = z.infer<typeof TraceQuerySchema>;
export interface TraceQueryResponse {
    traces: TraceData[];
    continuationToken?: string;
}
export interface TraceStore {
    init(): Promise<void>;
    save(traceId: string, trace: TraceData): Promise<void>;
    load(traceId: string): Promise<TraceData | undefined>;
    list(query?: TraceQuery): Promise<TraceQueryResponse>;
}
