import './assert_dev_env.js';
import { z } from 'zod';
import { ERROR_INVALID_REQUEST_BODY, ERROR_INVALID_JSON_BODY } from '../http/error_schemas.js';
import type { AdversarialTestOptions } from './attack_surface.js';
interface InputTestCase {
    label: string;
    body: unknown;
    expected_error: typeof ERROR_INVALID_REQUEST_BODY | typeof ERROR_INVALID_JSON_BODY;
}
interface ParamsTestCase {
    label: string;
    params: Record<string, string>;
}
interface QueryTestCase {
    label: string;
    query: Record<string, string>;
}
/**
 * Generate adversarial test cases for a route's input schema.
 *
 * Produces focused, non-redundant cases:
 * - Whole-body: send array instead of object, extra unknown key
 * - Missing required fields (without defaults)
 * - One wrong-type value per field
 * - Null for required non-nullable fields
 * - One format violation per constrained field
 *
 * @throws Error if the seed body built by `generate_valid_value` fails
 *   `input_schema.safeParse` — surfaces broken generation logic with the
 *   Zod issues path rather than producing nonsense adversarial cases.
 */
export declare const generate_input_test_cases: (input_schema: z.ZodType) => Array<InputTestCase>;
/**
 * Generate adversarial test cases for a route's params schema.
 *
 * Params are always strings from URL segments. Only generates cases for
 * format-constrained fields (uuid, pattern) since unconstrained string
 * params accept any string value.
 */
export declare const generate_params_test_cases: (params_schema: z.ZodObject) => Array<ParamsTestCase>;
/**
 * Generate adversarial test cases for a route's query schema.
 *
 * Query params are always strings from the URL. Generates cases for:
 * - Missing required fields
 * - Format violations on constrained fields (uuid, pattern)
 */
export declare const generate_query_test_cases: (query_schema: z.ZodObject) => Array<QueryTestCase>;
/**
 * Generate adversarial input validation test suites.
 *
 * Tests input body validation and params validation for all routes.
 * Uses correct auth credentials so auth guards pass and validation
 * middleware is actually exercised.
 */
export declare const describe_adversarial_input: (options: AdversarialTestOptions) => void;
export {};
//# sourceMappingURL=adversarial_input.d.ts.map