UNPKG

@opra/common

Version:
20 lines (19 loc) 813 B
import type { StrictOmit, Type } from 'ts-gems'; import type { DataType, DataTypeBase } from './data-type.interface.js'; import type { Field } from './field.interface.js'; import type { MappedType } from './mapped-type.interface.js'; import type { MixinType } from './mixin-type.interface.js'; export interface ComplexType extends StrictOmit<DataTypeBase, 'kind'> { kind: ComplexType.Kind; base?: DataType.Name | ComplexType | MixinType | MappedType; ctor?: Type; fields?: Record<Field.Name, Field | DataType.Name>; additionalFields?: boolean | string | DataType | ['error'] | ['error', string]; keyField?: Field.Name; discriminatorField?: string; discriminatorValue?: string; } export declare namespace ComplexType { const Kind = "ComplexType"; type Kind = typeof Kind; }