UNPKG

@opra/common

Version:
77 lines (76 loc) 2.52 kB
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 {};