/** Collection patterns for the residual project, which claims every test file the named tiers leave. */ export declare const ALL_TEST_PATTERNS: string[]; /** Builds the collection patterns for one tier. */ export declare function buildTierPatterns(tier: string): string[]; /** * Walks `rootDir` for every `*.test.ts` or `*.test.tsx` file sitting outside a `__tests__` directory, returning * paths relative to it, POSIX-separated and sorted. * * No project collects such a file, so it runs nowhere and reports nothing. Only a sweep of the tree tells it apart * from a file that runs and passes. */ export declare function findMisplacedTestFiles(rootDir: string, options?: TestFileScanOptions): string[]; /** * Walks `rootDir` for every test file the shared config's projects collect, returning paths relative to it, * POSIX-separated and sorted. * * A walk, because `node:fs` `globSync` does not descend into a dot-directory and honours no option that would make * it. Vitest's globber does, so the same pattern string means different things to the two: a check built on the glob * would report clean over every test file under a dot-directory. */ export declare function findTestFiles(rootDir: string, options?: TestFileScanOptions): string[]; /** * Walks `rootDir` for every collected test file whose name selects no tier, returning paths relative to it, * POSIX-separated and sorted. * * `unit` is the residual project, so such a file runs under it and reports success: no test run tells it apart from * a conformant file. */ export declare function findUntieredTestFiles(rootDir: string, options?: TestFileScanOptions): string[]; /** * Reports whether a test file's name selects a tier. * * Only the dot-delimited segment immediately before `.test.` selects one, so any earlier segment is free-form * documentation: `scaffold.packaged.unit.test.ts` names the `unit` tier. */ export declare function hasTierInfix(filePath: string): boolean; /** * Directory names that hold no test worth collecting: dependencies, build output, and generated reports. * * The one point where the collection glob and the walk must agree about scope. Over-reporting is a failure a * consumer cannot fix; under-reporting is the silence a conformance check exists to end. */ export declare const TEST_COLLECTION_EXCLUDE: string[]; /** Options every sweep over a repo's test files takes. */ export interface TestFileScanOptions { /** * Directory basenames pruned at any depth, additive to `TEST_COLLECTION_EXCLUDE`. * * Basenames rather than globs, so the array a repo passes here is the array it passes to the shared Vitest * config's `testCollectionExclude`. A directory pruned from the sweep but still collected by Vitest is the * silence these sweeps exist to end. */ exclude?: readonly string[]; } /** * The isolation ladder, ordered by the furthest thing a test reaches. A tier names what a test reaches, never how it * invokes it: a test driving a compiler through its JavaScript API is `tool`, exactly as one spawning `tsc` would be. * Each named tier's name is also its filename infix, so `parse.tool.test.ts` lands in `tool`. */ export declare const TIER_NAMES: readonly ["unit", "tool", "localhost", "remote"]; /** One of the four isolation tiers. */ export type TierName = (typeof TIER_NAMES)[number];