@opra/common
Version:
Opra common package
20 lines (19 loc) • 813 B
TypeScript
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;
}