@vaadin/hilla-models
Version:
Generative form models for Hilla
24 lines (23 loc) • 1.37 kB
TypeScript
import type { EmptyObject } from 'type-fest';
import { $enum, $itemModel, type $members, type AnyObject, type Enum, Model, type Value } from './model.js';
export type PrimitiveModel<V = unknown> = Model<V>;
export declare const PrimitiveModel: Model<unknown, EmptyObject>;
export type StringModel = PrimitiveModel<string>;
export declare const StringModel: Model<string, EmptyObject>;
export type NumberModel = PrimitiveModel<number>;
export declare const NumberModel: Model<number, EmptyObject>;
export type BooleanModel = PrimitiveModel<boolean>;
export declare const BooleanModel: Model<boolean, EmptyObject>;
export type ArrayModel<M extends Model = Model> = Model<Array<Value<M>>, Readonly<{
[$itemModel]: M;
}>>;
export declare const ArrayModel: Model<unknown[], EmptyObject & Readonly<Record<typeof $itemModel, Model<unknown, EmptyObject, never>>>>;
export type ObjectModel<V, EX extends AnyObject = EmptyObject, R extends keyof any = never> = Model<V, EX, R>;
export declare const ObjectModel: Model<Readonly<Record<never, never>>, EmptyObject>;
export type EnumModel<T extends typeof Enum> = Model<T[keyof T], Readonly<{
[$enum]: T;
}>>;
export declare const EnumModel: Model<string, EmptyObject & Readonly<Record<typeof $enum, typeof Enum>>>;
export type UnionModel<MM extends Model[]> = Model<Value<MM[number]>, Readonly<{
[$members]: MM;
}>>;