import '../assert_dev_env.js';
import type { AppSurfaceSpec } from '../../http/surface.js';
import type { SessionOptions } from '../../auth/session_cookie.js';
import { type RpcEndpointsSuiteOption } from '../rpc_helpers.js';
import { type ConformanceCase } from './conformance_case.js';
import type { BackendCapabilities } from './capabilities.js';
import type { SetupTest } from './setup.js';
/**
 * Names a seeded `extra_accounts` username for the `role_holder` /
 * `wrong_role` principals — the only two that aren't backed by an
 * always-available fixture accessor. Suites exercising those principals
 * declare the matching `extra_accounts` at setup and name them here.
 */
export interface ConformancePrincipalConfig {
    /** `extra_accounts` username for the `role_holder` principal. */
    readonly role_holder?: string;
    /** `extra_accounts` username for the `wrong_role` principal. */
    readonly wrong_role?: string;
}
/** Options for `describe_conformance_table_tests`. */
export interface ConformanceTableOptions {
    /** The conformance cases to run, in order. */
    readonly cases: ReadonlyArray<ConformanceCase>;
    /** Per-test fixture producer (in-process or cross-process). */
    readonly setup_test: SetupTest;
    /** Surface spec — supplies the `RouteSpec`s for the REST branch. */
    readonly surface_source: AppSurfaceSpec;
    /** Declared backend capabilities (reserved for capability-gated rows). */
    readonly capabilities: BackendCapabilities;
    /** RPC endpoints — resolved to find each method's action spec. */
    readonly rpc_endpoints: RpcEndpointsSuiteOption;
    /** Session options — needed to resolve the `rpc_endpoints` factory form. */
    readonly session_options: SessionOptions<string>;
    /** Maps the `role_holder` / `wrong_role` principals to seeded usernames. */
    readonly principals?: ConformancePrincipalConfig;
    /** `describe` block label. Defaults to `'conformance table'`. */
    readonly suite_name?: string;
}
/**
 * Register a `describe` block running every `ConformanceCase` as a
 * vitest `test` (or `xfail_until` for deferred-by-design rows). Drives
 * either transport via the shared `{setup_test, surface_source,
 * capabilities}` protocol.
 */
export declare const describe_conformance_table_tests: (options: ConformanceTableOptions) => void;
//# sourceMappingURL=conformance_table.d.ts.map