import type { TupleToObject } from '../lib/utils.js'; import { z } from '../lib/z/index.js'; import type { SomeRecordController } from '../record/types/controller.js'; import type { SomeDecodeOrThrower, SomeDecoder, SomeEncoder } from '../record/types/internal.js'; import type { Initial } from './types/Builder.js'; import type { DataController, SomeShortHandRecordSchemaDefs, SomeShortHandRecordSchemas } from './types/Controller.js'; import type { SomeDataController } from './types/internal.js'; import type { SomeZodObject } from 'zod'; export type SomeAdtMethods = { name: string; schema: null | SomeZodObject | z.ZodUnion<[z.SomeZodObject, ...z.SomeZodObject[]]>; from: Record; to: Record; }; export declare function data(name: Name, shortHandRecordSchemas: ShortHandRecordSchemas): DataController.createFromShortHandRecordSchemas; export declare function data(name: Name, shortHandRecordSchemaDefinitions: ShortHandRecordDefs): DataController.createFromShortHandRecordSchemaDefs; /** * Define an algebraic data type. There must be at least two members. If all members have a parse function then an ADT level parse function will automatically be derived. */ export declare function data(name: Name): Initial<{ name: Name; }, []>; export type Infer = { '*': z.infer; } & TupleToObject[number]>; export type InferRecord = z.infer; export type SchemaToTuple = { [Index in keyof Schemas]: [z.TypeOf['_tag'], z.TypeOf]; }; //# sourceMappingURL=runtime.d.ts.map