/** * The §11 server budgets of the server-controlled-exploration design, as data, plus the * comparison the bench and its test share. Deliberately NOT exported from `index.ts` or * `browse.ts`: this is bench vocabulary, not part of the package's public surface. */ export type BrowseBudgetId = "windowed-fetch" | "filtered-count" | "head-refresh" | "non-default-sort" | "content-contains"; /** Ceilings approved for SQLite at 100 000 rows; the margin covers real payload decode. * Four are grounded in a §5.5 measurement. `head-refresh` is NOT — §5.5 has no row for * it, and §11 grounds it by extrapolation ("~3-8 ms + decode"), so this bench is the * first measurement it has ever had. */ export declare const SQLITE_BROWSE_BUDGETS_MS: Readonly>>; /** Postgres. §11 approves only two numbers, and BOTH are estimates — no container bench * has ever run. The other three shapes stay deliberately absent so the checker reports * them as unbudgeted rather than inventing a ceiling. */ export declare const POSTGRES_BROWSE_BUDGETS_MS: Readonly>>; /** Nearest-rank p95. With 20 samples that is the 19th — no interpolation, so the number * reported is a measurement that actually happened. */ export declare function percentileMs(samples: readonly number[], fraction: number): number; export interface BrowseBudgetRow { readonly id: BrowseBudgetId; /** null only when the shape was never measured. */ readonly p95Ms: number | null; readonly budgetMs: number | null; readonly status: "pass" | "fail" | "unbudgeted" | "unmeasured"; } export interface BrowseBudgetReport { readonly rows: readonly BrowseBudgetRow[]; readonly ok: boolean; } /** * A row per measured shape, plus a row per approved ceiling nobody measured. Both holes * are reported rather than skipped, for opposite reasons: a measurement with no ceiling * must not be counted as approval nobody gave, and a ceiling with no measurement must not * let a partial run exit clean — a `--assert` that checked one of five and returned 0 * would certify four budgets it never looked at. A zero-sample array is a broken run, not * an absent one, so it fails. */ export declare function checkBrowseBudgets(measurements: Readonly>>, budgets: Readonly>>): BrowseBudgetReport; export declare function formatBrowseBudgetReport(report: BrowseBudgetReport): string; //# sourceMappingURL=browse-budget.d.ts.map