import { E as Encoding, a5 as Registry } from '../config-BFqid9Gr.js';
import { D as DriverConfig } from '../driver-Bxv62E2p.js';
import 'zod/v4';
import '@rivetkit/virtual-websocket';
import '../config-BiNoIHRs.js';
import '@rivetkit/sqlite-vfs';
import '@rivetkit/traces';
import 'hono';
import 'vbare';
import 'pino';
import '../utils.js';
import '../utils-fwx3o3K9.js';
import 'hono/utils/http-status';
import 'drizzle-orm/sqlite-core';
import 'zod';
import '@standard-schema/spec';
import 'nanoevents';
import '../v3-DnYObHH3.js';
import '@rivetkit/bare-ts';

interface SkipTests {
    schedule?: boolean;
    sleep?: boolean;
    hibernation?: boolean;
    inline?: boolean;
}
interface DriverTestConfig {
    /** Deploys an registry and returns the connection endpoint. */
    start(): Promise<DriverDeployOutput>;
    /**
     * If we're testing with an external system, we should use real timers
     * instead of Vitest's mocked timers.
     **/
    useRealTimers?: boolean;
    /** Cloudflare Workers has some bugs with cleanup. */
    HACK_skipCleanupNet?: boolean;
    skip?: SkipTests;
    encoding?: Encoding;
    clientType: ClientType;
    cleanup?: () => Promise<void>;
}
/**
 * The type of client to run the test with.
 *
 * The logic for HTTP vs inline is very different, so this helps validate all behavior matches.
 **/
type ClientType = "http" | "inline";
interface DriverDeployOutput {
    endpoint: string;
    namespace: string;
    runnerName: string;
    /** Cleans up the test. */
    cleanup(): Promise<void>;
}
/** Runs all Vitest tests against the provided drivers. */
declare function runDriverTests(driverTestConfigPartial: Omit<DriverTestConfig, "clientType" | "encoding">): void;
/**
 * Helper function to adapt the drivers to the Node.js runtime for tests.
 *
 * This is helpful for drivers that run in-process as opposed to drivers that rely on external tools.
 */
declare function createTestRuntime(registryPath: string, driverFactory: (registry: Registry<any>) => Promise<{
    rivetEngine?: {
        endpoint: string;
        namespace: string;
        runnerName: string;
        token: string;
    };
    driver: DriverConfig;
    cleanup?: () => Promise<void>;
}>): Promise<DriverDeployOutput>;

export { type DriverDeployOutput, type DriverTestConfig, type SkipTests, createTestRuntime, runDriverTests };
