import { z } from 'zod';
/**
 * Rich per-test envelope returned by both `search_tests_by_text` and `search_tests_by_semantic`.
 *
 * The schema is a UNION shape: some fields are modality-specific (e.g., `text_score` only
 * on text matches, `matched_chunk_context` only on semantic matches). Synthesis uses
 * `annotated_step_summary` and (for semantic) `matched_chunk_context` to make include/exclude
 * decisions without a follow-up fetch.
 *
 * The shared truncation algorithm caps total payload at TOTAL_TOOL_BUDGET_CHARS (80 KB) per
 * tool call so the synthesis context stays bounded regardless of how large individual tests
 * are. See truncateTestResults.ts for the budget allocation strategy.
 */
export declare const testSearchMatchSchema: z.ZodObject<{
    test_invariant_id: z.ZodString;
    test_name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    labels: z.ZodArray<z.ZodString>;
    intent: z.ZodOptional<z.ZodString>;
    test_type: z.ZodOptional<z.ZodEnum<{
        browser: "browser";
        mobile: "mobile";
    }>>;
    mobile_platform: z.ZodOptional<z.ZodEnum<{
        ios: "ios";
        android: "android";
    }>>;
    application_id: z.ZodOptional<z.ZodString>;
    last_updated_time: z.ZodOptional<z.ZodString>;
    annotated_step_summary: z.ZodString;
    truncated: z.ZodBoolean;
    text_score: z.ZodOptional<z.ZodNumber>;
    matched_field: z.ZodOptional<z.ZodEnum<{
        name: "name";
        description: "description";
        labels: "labels";
        intent: "intent";
        combined: "combined";
    }>>;
    matched_chunk_context: z.ZodOptional<z.ZodString>;
    matched_chunk_step_range: z.ZodOptional<z.ZodObject<{
        start: z.ZodNumber;
        end: z.ZodNumber;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type TestSearchMatch = z.infer<typeof testSearchMatchSchema>;
export declare const testSearchResponseSchema: z.ZodObject<{
    total_candidates: z.ZodNumber;
    truncated: z.ZodBoolean;
    matches: z.ZodArray<z.ZodObject<{
        test_invariant_id: z.ZodString;
        test_name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        labels: z.ZodArray<z.ZodString>;
        intent: z.ZodOptional<z.ZodString>;
        test_type: z.ZodOptional<z.ZodEnum<{
            browser: "browser";
            mobile: "mobile";
        }>>;
        mobile_platform: z.ZodOptional<z.ZodEnum<{
            ios: "ios";
            android: "android";
        }>>;
        application_id: z.ZodOptional<z.ZodString>;
        last_updated_time: z.ZodOptional<z.ZodString>;
        annotated_step_summary: z.ZodString;
        truncated: z.ZodBoolean;
        text_score: z.ZodOptional<z.ZodNumber>;
        matched_field: z.ZodOptional<z.ZodEnum<{
            name: "name";
            description: "description";
            labels: "labels";
            intent: "intent";
            combined: "combined";
        }>>;
        matched_chunk_context: z.ZodOptional<z.ZodString>;
        matched_chunk_step_range: z.ZodOptional<z.ZodObject<{
            start: z.ZodNumber;
            end: z.ZodNumber;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type TestSearchToolResponse = z.infer<typeof testSearchResponseSchema>;
//# sourceMappingURL=searchTestsSchemas.d.ts.map