import './assert_dev_env.js';
/**
 * Combined standard test suite helper.
 *
 * Bundles every DB-backed suite carrying the standard option shape, each
 * gated on its relevant config — silent-skip when the gate isn't met
 * (same precedent as `describe_standard_admin_integration_tests` skipping
 * when `roles` isn't provided). Consumers wire the standard surface in
 * one call instead of seven; forgetting a suite no longer silently loses
 * coverage.
 *
 * Attack surface suites stay separate — their option shape is
 * `{build, snapshot_path, expected_public_routes, ...}` rather than
 * `{setup_test, surface_source, capabilities}`. A peer bundler lives
 * for that side if/when needed.
 *
 * @module
 */
import type { SessionOptions } from '../auth/session_cookie.js';
import type { RoleSchemaResult } from '../auth/role_schema.js';
import type { AppServerContext, BootstrapServerOptions } from '../server/app_server.js';
import type { RouteSpec } from '../http/route_spec.js';
import type { RpcEndpointsSuiteOption } from './rpc_helpers.js';
import type { BackendCapabilities } from './cross_backend/capabilities.js';
import type { SetupTest } from './cross_backend/setup.js';
import type { AppSurfaceSpec } from '../http/surface.js';
import type { SuiteAppOptions } from './app_server.js';
/**
 * Configuration for `describe_standard_tests`.
 */
export interface StandardTestOptions {
    /** Per-test fixture-producing function. */
    setup_test: SetupTest;
    /**
     * App surface. Constructed in TS by the consumer; same shape for
     * in-process and cross-process tests.
     */
    surface_source: AppSurfaceSpec;
    /** Backend capability declarations. */
    capabilities: BackendCapabilities;
    /** Session config — needed for cookie_name + factory-form rpc_endpoints resolution. */
    session_options: SessionOptions<string>;
    /**
     * Route spec factory — same one used in production. Required by
     * `describe_rate_limiting_tests`, which builds a fresh `TestApp` per test
     * (bypasses the shared `setup_test` fixture) so it can pass tight
     * per-test rate-limiter overrides.
     */
    create_route_specs: (ctx: AppServerContext) => Array<RouteSpec>;
    /**
     * RPC endpoint specs — required. The standard integration tests drive
     * `account_verify`, `account_session_*`, `account_token_*` through the
     * RPC surface (and admin tests, when wired, drive role_grant grant/revoke
     * through it too).
     */
    rpc_endpoints: RpcEndpointsSuiteOption;
    /**
     * Role schema result from `create_role_schema()`.
     * When provided, admin integration + audit completeness suites are included.
     */
    roles?: RoleSchemaResult;
    /**
     * Bootstrap config — when set to `mode: 'live'`, the bootstrap success
     * suite runs against `create_test_app_for_bootstrap`. Other modes
     * (`'disabled'` / `'surface_only'` / omission) silent-skip the suite.
     */
    bootstrap?: BootstrapServerOptions;
    /** Optional overrides forwarded to `describe_rate_limiting_tests`. */
    rate_limiting_app_options?: SuiteAppOptions;
    /**
     * Path prefix where admin routes are mounted.
     * Default `'/api/admin'`.
     */
    admin_prefix?: string;
    /**
     * Forwarded to `describe_standard_integration_tests` — overrides the
     * default error-coverage threshold on the scoped REST surface. Set to
     * `0` to skip the assertion entirely.
     */
    error_coverage_min?: number;
    /** Override the bootstrap-success suite's synthetic token. */
    bootstrap_token?: string;
}
/**
 * Run the full standard test bundle — integration, admin (when `roles`
 * provided), audit completeness (when `roles` provided), bootstrap
 * success (when `bootstrap.mode === 'live'`), round trip, RPC round
 * trip, data exposure, rate limiting.
 */
export declare const describe_standard_tests: (options: StandardTestOptions) => void;
//# sourceMappingURL=standard.d.ts.map