import * as MO from "../_schema.js"; import * as Arbitrary from "../Arbitrary.js"; import * as Constructor from "../Constructor.js"; import * as Encoder from "../Encoder.js"; import * as Guard from "../Guard.js"; import * as Parser from "../Parser.js"; import * as S from "./schemed.js"; export type SchemaForModel = MO.Schema, M, MO.ConstructorInputOf, MO.EncodedOf, MO.ApiOf & MO.ApiSelfType>; export type ParserFor = Parser.Parser, MO.ParserErrorOf, MO.ParsedShapeOf>; export type ConstructorFor = Constructor.Constructor, MO.ParsedShapeOf, MO.ConstructorErrorOf>; export type EncoderFor = Encoder.Encoder, MO.EncodedOf>; export type GuardFor = Guard.Guard>; export type ArbitraryFor = Arbitrary.Gen>; export type ModelFor = M extends MO.ParsedShapeOf ? SchemaForModel : SchemaForModel, Self>; export interface Model extends S.Schemed, MO.Schema, M, MO.ConstructorInputOf, MO.EncodedOf, MO.ApiOf> { [S.schemaField]: Self; readonly Parser: ParserFor>; readonly Constructor: ConstructorFor>; readonly Encoder: EncoderFor>; readonly Guard: GuardFor>; readonly Arbitrary: ArbitraryFor>; } /** * @inject genericName */ export declare function Model(__name?: string): (self: Self) => Model; //# sourceMappingURL=model.d.ts.map