import './assert_dev_env.js';
import type { BackendCapabilities } from './cross_backend/capabilities.js';
import type { SetupTest, TestFixture } from './cross_backend/setup.js';
import type { AppSurfaceSpec } from '../http/surface.js';
/** Options for `describe_round_trip_validation`. */
export interface RoundTripTestOptions {
    /**
     * Per-test fixture-producing function. `describe_round_trip_validation`
     * invokes this once in `beforeAll` (per-describe cadence — see module
     * docstring) to share a single bootstrapped keeper + accounts across
     * every route case.
     */
    setup_test: SetupTest;
    /**
     * App surface (with route specs) for route iteration. Constructed in
     * TS by the consumer; same shape for in-process and cross-process tests.
     */
    surface_source: AppSurfaceSpec;
    /** Backend capability declarations — see `cross_backend/capabilities.ts`. */
    capabilities: BackendCapabilities;
    /** Routes to skip, in `'METHOD /path'` format. */
    skip_routes?: Array<string>;
    /** Override generated bodies for specific routes (`'METHOD /path'` → body). */
    input_overrides?: Map<string, Record<string, unknown>>;
    /**
     * Success-case fixtures for routes whose **populated success body** the
     * generic nil-id input can't reach — referential REST routes whose path
     * params / body must point at existing rows. Maps `'METHOD /path'` to an
     * async factory that receives the per-test `fixture` (so it can seed the
     * referenced state) and returns `{url?, body?}`: an explicit resolved `url`
     * (when the factory built it from the ids it just seeded) and/or a request
     * `body`. Omit `url` to fall back to the generated valid path.
     *
     * Distinct from `input_overrides` (body-only, accepts a valid error
     * envelope): a `success_fixtures` entry **asserts a 2xx response** and
     * validates it against the route's `output` schema — the success-shape
     * parity check the nil-id round-trip can't perform.
     */
    success_fixtures?: Map<string, (fixture: TestFixture) => Promise<{
        url?: string;
        body?: Record<string, unknown>;
    }>>;
}
/**
 * Run schema-driven round-trip validation tests.
 *
 * For each route:
 * 1. Resolve URL with valid params
 * 2. Generate a valid request body (or use override)
 * 3. Pick auth headers matching the route's auth requirement
 * 4. Fire the request through `fixture.transport` and validate the response
 *
 * SSE routes are skipped by Content-Type sniff. Routes returning non-2xx
 * with valid input are still validated against their declared error schemas.
 */
export declare const describe_round_trip_validation: (options: RoundTripTestOptions) => void;
//# sourceMappingURL=round_trip.d.ts.map