import { MeterSnapshot } from '@noy-db/to-meter'; interface InspectResult { formatVersion: number; handle: string; bodyBytes: number; bodySha256: string; } declare function inspect(filePath: string): Promise; declare function runInspect(argv: readonly string[]): Promise; interface VerifyReport { ok: boolean; file: string; handle: string; bodyBytes: number; checks: { magic: boolean; header: boolean; bodyHash: boolean; }; error?: string; } declare function verify(filePath: string): Promise; declare function runVerify(argv: readonly string[]): Promise; interface ValidationIssue { severity: 'warn' | 'error'; code: string; path: string; message: string; } interface ValidationReport { ok: boolean; issues: ValidationIssue[]; } declare function validateOptions(opts: unknown): ValidationReport; /** Dynamically import a JS/MJS/CJS config file and pull the NoydbOptions * out of it. Accepts a default export that is either the options * object or a zero-arg function (sync or async) returning the options. * * **TypeScript note.** Node cannot `import()` a bare `.ts` file without * a loader. If the adopter's config is TypeScript, they should either * compile it first (`tsc foo.ts`) or run the CLI under a TS-capable * runtime (e.g. `tsx $(which noydb) config validate foo.ts`). The * function throws a human-readable error for `.ts` input rather than * propagating Node's cryptic `Unknown file extension` message. */ declare function loadOptionsFromFile(filePath: string): Promise; declare function runConfigValidate(argv: readonly string[]): Promise; /** Profiles match `docs/guides/topology-matrix.md` § View 3. */ type Profile = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J'; interface ScaffoldResult { profile: Profile; code: string; env: string; notes: string; } declare function scaffold(profile: Profile): ScaffoldResult; declare function runConfigScaffold(argv: readonly string[]): Promise; interface MonitorOptions { intervalMs: number; iterations?: number; } declare function runMonitor(argv: readonly string[]): Promise; declare function formatSnapshot(snap: MeterSnapshot): string; /** * `noydb describe ` — emit a human-readable YAML/JSON * description of a bundle's structure (collections, fields, indexes, * FKs, MVs, overlays, derivations) with optional counters. * * Loads the bundle into an in-memory store, unlocks it with the * supplied secret + user, calls `vault.dumpSchema()`, then emits. * * See `design-history/2026-05-22-schema-dump-design.md`. * * @module */ type DescribeFormat = 'yaml' | 'json'; type SchemasMode = 'none' | 'full' | 'sidecar'; interface DescribeOptions { readonly bundlePath: string; readonly user: string; readonly secret: string; readonly format: DescribeFormat; readonly withStats: boolean; readonly schemas: SchemasMode; readonly outPath?: string; readonly sampleSize: number; } /** Run the full describe pipeline and return the emitted string. */ declare function describeBundle(opts: DescribeOptions): Promise; declare function runDescribe(argv: readonly string[]): Promise; export { type DescribeFormat, type DescribeOptions, type InspectResult, type MonitorOptions, type Profile, type ScaffoldResult, type SchemasMode, type ValidationIssue, type ValidationReport, type VerifyReport, describeBundle, formatSnapshot, inspect, loadOptionsFromFile, runConfigScaffold, runConfigValidate, runDescribe, runInspect, runMonitor, runVerify, scaffold, validateOptions, verify };