import { SchemaIR, TupleIR } from "../../types.js"; import { FastGen, SlowGen } from "../context.js"; //#region src/core/codegen/schemas/tuple.d.ts /** * Mirrors $ZodTuple. Without rest, an input shorter than `optStart` is a single * `too_small` (`minimum: optStart`, `inclusive: true`) that skips item * validation, and a longer one a single `too_big` that does NOT — zod pushes it * and runs the items anyway, so their issues follow it. Both are created by * the tuple node (schema error applies) and both share the `code, minimum | * maximum, inclusive, origin` key order that check-created size issues do not. * * Every item then runs, absent slots included, and the output is shaped by * {@link slotKinds}. The generated code keeps zod's invariant that the output * grows one slot at a time from the input's length: a slot that is about to be * handled as absent is exactly the output's current length, and once a `skip` * or a failed `tail` ends the output, every later absent slot sees a shorter * array and falls through. Ending the output at slot `i` needs no truncation * beyond what the failed item may have written, because nothing past `i` was * ever assigned. */ declare function slowTuple(ir: SchemaIR & { type: "tuple"; }, g: SlowGen): string; declare function fastTuple(ir: TupleIR, g: FastGen): string | null; //#endregion export { fastTuple, slowTuple }; //# sourceMappingURL=tuple.d.ts.map