/** * Work out a column's type from the GENERATOR that feeds it, when `type=` was * not declared. * * This is the reliable middle step of the resolution order: we know a column * came from `type="number"` without decimals, so it is an int64 — far safer * than guessing from the rendered text, which is how `007` silently becomes 7. * When we cannot tell, we return undefined and the caller falls back to string, * which never corrupts data. * Spec: docs/specs/2026-07-19-typed-output-and-parquet-writer.md §4. */ import type { SequenceSpec } from '../sequence/types.js'; import { type ColumnType, type OutputColumnType } from './column-type.js'; /** * The single sequence a template refers to, if it is exactly one substitution * and nothing else (`${{Id}}`). Composite text has no single source type. */ export declare function soleReference(template: string, inject: string): string | undefined; /** * Derive a column type for `name` from the sequence specs, or undefined when it * cannot be told confidently. */ export declare function deriveColumnType(name: string, specs: readonly SequenceSpec[]): ColumnType | undefined; /** * The type of a column fed by `name`, as a LIST when the generator repeats. * * A repeating gen puts several values in one cell, so the column is a list of * whatever a single value would have been. If the element type cannot be told * confidently the whole thing stays text — same safety rule as everywhere else. */ export declare function deriveOutputColumnType(name: string, specs: readonly SequenceSpec[]): OutputColumnType | undefined; /** * The `separator` of the generator feeding `name`, or undefined when it does * not repeat. This is what a list column splits its rendered text on, so the * text view and the typed view can never disagree about where a value ends. */ export declare function repeatSeparatorOf(name: string, specs: readonly SequenceSpec[]): string | undefined; //# sourceMappingURL=derive-type.d.ts.map