@opra/common
Version:
Opra common package
77 lines (76 loc) • 2.52 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 { EnumType } from './enum-type.js';
import type { MappedType } from './mapped-type.js';
import type { MixinType } from './mixin-type.js';
import type { SimpleType } from './simple-type.js';
import type { UnionType } from './union-type.js';
/**
* @namespace ArrayType
*/
export declare namespace ArrayType {
interface Metadata extends Combine<{
kind: OpraSchema.ArrayType.Kind;
name?: string;
type: Type;
}, DataType.Metadata, OpraSchema.ArrayType> {
}
interface InitArguments extends Combine<{
kind: OpraSchema.ArrayType.Kind;
type: ArrayType | ComplexType | EnumType | MappedType | MixinType | SimpleType | UnionType;
ctor?: Type;
}, DataType.InitArguments, ArrayType.Metadata> {
}
interface Options extends Combine<Pick<OpraSchema.ArrayType, 'minOccurs' | 'maxOccurs'>, DataType.Options> {
}
}
/**
* Type definition for ArrayType
* @class ArrayType
*/
export interface ArrayTypeStatic {
/**
* Class constructor of ArrayType
*
* @param owner
* @param args
* @constructor
*/
new (owner: DocumentElement, args: ArrayType.InitArguments): ArrayType;
/**
* Create a new mixin type from the given data type
*/
(type: string | Type | EnumType.EnumObject, options?: ArrayType.Options): Type;
prototype: ArrayType;
}
/**
* Type definition of ArrayType prototype
* @interface
*/
export interface ArrayType extends ArrayTypeClass {
}
/**
* @class ArrayType
*/
export declare const ArrayType: ArrayTypeStatic;
/**
*
* @class ArrayType
*/
declare class ArrayTypeClass extends DataType {
readonly kind: OpraSchema.ArrayType.Kind;
readonly type: ComplexType | MixinType | MappedType | SimpleType | UnionType | EnumType | ArrayType;
readonly minOccurs?: number;
readonly maxOccurs?: number;
toJSON(options?: ApiDocument.ExportOptions): OpraSchema.ArrayType;
generateCodec(codec: 'encode' | 'decode', options?: DataType.GenerateCodecOptions, properties?: object): Validator;
extendsFrom(): boolean;
protected _locateBase(): ArrayType | undefined;
}
export {};