import './assert_dev_env.js';
/**
 * Auth test app factories for adversarial testing.
 *
 * Creates Hono test apps at each auth level (public, authenticated, keeper,
 * per-role) for use in adversarial auth enforcement and input validation tests.
 *
 * @module
 */
import { Hono } from 'hono';
import { type RouteSpec } from '../http/route_spec.js';
import { type RouteAuth } from '../http/auth_shape.js';
import { type RequestContext } from '../auth/request_context.js';
import { type CredentialType } from '../hono_context.js';
/**
 * Create a mock `RequestContext` with optional role role_grant.
 */
export declare const create_test_request_context: (role?: string) => RequestContext;
/**
 * Create a Hono test app from route specs with optional auth context.
 *
 * @param route_specs - the route specs to register
 * @param auth_ctx - optional request context to inject via middleware
 * @param credential_type - optional credential type (default: `'session'` when `auth_ctx` provided)
 */
export declare const create_test_app_from_specs: (route_specs: Array<RouteSpec>, auth_ctx?: RequestContext, credential_type?: CredentialType) => Hono;
/** Pre-built Hono apps for each auth level, shared across adversarial test suites. */
export interface AuthTestApps {
    public: Hono;
    authed: Hono;
    keeper: Hono;
    by_role: Map<string, Hono>;
}
/**
 * Create one Hono test app per auth level.
 *
 * @param route_specs - the route specs to register
 * @param roles - all roles in the app
 */
export declare const create_auth_test_apps: (route_specs: Array<RouteSpec>, roles: Array<string>) => AuthTestApps;
/**
 * Select the Hono test app with correct auth for a route.
 *
 * @throws Error if `auth.roles` names a role not present in `apps.by_role` —
 *   surfaces a missing entry in the `roles` array passed to
 *   `create_auth_test_apps`.
 */
export declare const select_auth_app: (apps: AuthTestApps, auth: RouteAuth) => Hono;
/** Replace Hono route params (`:foo`) with dummy values for HTTP testing. */
export declare const resolve_test_path: (path: string) => string;
//# sourceMappingURL=auth_apps.d.ts.map