/**
 * @specverse/engines/inference/ui-contracts
 *
 * Spec-inferred UI contract test generation. The realize pipeline
 * calls `generateContractTests(spec)` which runs every registered
 * rule over the normalized spec and returns a map of filename →
 * spec file content. The caller writes those to disk.
 *
 * Design: see docs/proposals/UI-CONTRACT-INFERENCE.md.
 */
import type { NormalizedSpec } from './test-case-types.js';
export * from './test-case-types.js';
export { renderSpecFile } from './translator.js';
export interface ContractTestFile {
    /** Filename relative to the contract test output directory. */
    filename: string;
    /** The Playwright .spec.ts contents. */
    contents: string;
    /** Number of individual test() blocks in the file. */
    testCount: number;
}
/**
 * Run every rule over the spec and render each rule's output as a
 * single .spec.ts file. Rules that produce zero test cases (e.g.
 * because no spec elements matched) are skipped.
 */
export declare function generateContractTests(spec: NormalizedSpec): ContractTestFile[];
/**
 * Convert a parsed/inferred spec (as produced by the parser or the
 * inference engine) into the NormalizedSpec shape that rules consume.
 *
 * The parser returns components as an array with each holding
 * `models`, `controllers`, etc. This function flattens to a single
 * top-level view. It handles both object-keyed and array-shaped
 * collections.
 */
export declare function normalizeSpec(raw: any): NormalizedSpec;
//# sourceMappingURL=index.d.ts.map