/** * Latency is what makes a mock exercise the states a real API forces an app * through — pending spinners, skeletons, optimistic UI, race conditions. The same * latency in a test suite is dead time, so the amount is per-environment and the * default under test is none. */ export type MockDelayInput = number | { /** Milliseconds under test. Defaults to `0`. */ test?: number; /** Milliseconds everywhere else. Defaults to `0`. */ dev?: number; }; /** * True when running under a test runner: `NODE_ENV === 'test'` (vitest, jest) or * Vite's `MODE === 'test'`. Read defensively because neither `process` nor * `import.meta.env` exists in every environment this package runs in. */ export declare function isTestEnvironment(): boolean; /** The pure resolution `mockDelay` applies, split out so both branches are testable. */ export declare function resolveMockDelay(input: MockDelayInput, isTest: boolean): number; /** * Waits, in dev; resolves immediately under test unless a test delay is asked * for. * * ```ts * mock.get('/things', async ({ response }) => { * await mockDelay(400); * return response(200).json(things.list()); * }); * * // Keep a little latency under test, for a pending-state assertion. * await mockDelay({ dev: 400, test: 10 }); * ``` */ export declare function mockDelay(input?: MockDelayInput): Promise;