import '../assert_dev_env.js';
/**
 * One-call spawn + bootstrap helper.
 *
 * Composes `spawn_backend(config)` and `bootstrap({transport, config})` so a
 * consumer's vitest `globalSetup` reduces to a single await:
 *
 * ```ts
 * import {bootstrap_backend} from '@fuzdev/fuz_app/testing/cross_backend/bootstrap_backend.js';
 *
 * export default async function ({provide}) {
 *   const bootstrapped = await bootstrap_backend(deno_backend_config());
 *   provide('backend_handle', bootstrapped);
 *   return async () => {
 *     await bootstrapped.teardown();
 *   };
 * }
 * ```
 *
 * If `bootstrap()` throws — typically a bad token, port collision, or
 * keeper-username mismatch — the spawned binary is torn down before the
 * error propagates so vitest doesn't strand the port.
 *
 * @module
 */
import type { BackendConfig } from './backend_config.js';
import type { BootstrappedBackendHandle } from './setup.js';
/**
 * Spawn the test binary described by `config`, bootstrap a keeper, and
 * return the enriched handle.
 *
 * The keeper transport is constructed against `config.base_url` with no
 * initial cookies; `bootstrap()` populates its jar with the session
 * cookie returned by `POST {config.bootstrap_path}`. Subsequent calls
 * against `bootstrapped.keeper_transport` are authenticated as keeper.
 *
 * Mirrors the composition `default_cross_process_setup`'s caller would
 * otherwise hand-roll in every consumer's `globalSetup`.
 */
export declare const bootstrap_backend: (config: BackendConfig) => Promise<BootstrappedBackendHandle>;
//# sourceMappingURL=bootstrap_backend.d.ts.map