@opra/common
Version:
Opra common package
74 lines (73 loc) • 2.29 kB
TypeScript
import 'reflect-metadata';
import type { Combine, Type } from 'ts-gems';
import { Validator } from 'valgen';
import { OpraSchema } from '../../schema/index.js';
import type { ApiDocument } from '../api-document.js';
import type { DocumentElement } from '../common/document-element.js';
import type { ComplexType } from './complex-type.js';
import { DataType } from './data-type.js';
import type { MappedType } from './mapped-type.js';
import type { MixinType } from './mixin-type.js';
import type { SimpleType } from './simple-type.js';
/**
* @namespace UnionType
*/
export declare namespace UnionType {
interface Metadata extends Combine<{
kind: OpraSchema.UnionType.Kind;
name?: string;
types: Type[];
}, DataType.Metadata, OpraSchema.UnionType> {
}
interface InitArguments extends Combine<{
kind: OpraSchema.UnionType.Kind;
types: (ComplexType | MappedType | MixinType | SimpleType)[];
ctor?: Type;
}, DataType.InitArguments, UnionType.Metadata> {
}
interface Options extends Combine<Pick<OpraSchema.UnionType, 'discriminator'>, DataType.Options> {
}
}
/**
* Type definition for UnionType
* @class UnionType
*/
export interface UnionTypeStatic {
/**
* Class constructor of UnionType
*
* @param owner
* @param args
* @constructor
*/
new (owner: DocumentElement, args: UnionType.InitArguments): UnionType;
/**
* Create a new mixin type from given two types
*/
(types: (string | Type)[], options?: UnionType.Options): Type;
prototype: UnionType;
}
/**
* Type definition of UnionType prototype
* @interface
*/
export interface UnionType extends UnionTypeClass {
}
/**
* @class UnionType
*/
export declare const UnionType: UnionTypeStatic;
/**
*
* @class UnionType
*/
declare class UnionTypeClass extends DataType {
readonly kind: OpraSchema.UnionType.Kind;
readonly types: (ComplexType | MixinType | MappedType | SimpleType)[];
readonly discriminator?: string;
toJSON(options?: ApiDocument.ExportOptions): OpraSchema.UnionType;
generateCodec(codec: 'encode' | 'decode', options?: DataType.GenerateCodecOptions): Validator;
extendsFrom(): boolean;
protected _locateBase(): UnionType | undefined;
}
export {};