UNPKG

@opra/common

Version:
50 lines (49 loc) 1.46 kB
import type { Combine, StrictOmit, TypeThunkAsync } from 'ts-gems'; import type { OpraSchema } from '../../schema/index.js'; import type { ApiDocument } from '../api-document'; import { DataType } from '../data-type/data-type.js'; import type { EnumType } from '../data-type/enum-type.js'; import { DocumentElement } from './document-element.js'; /** * @namespace Value */ export declare namespace Value { interface Metadata extends StrictOmit<OpraSchema.Value, 'type'> { type?: string | TypeThunkAsync | EnumType.EnumObject | EnumType.EnumArray | object; } interface Options extends Partial<StrictOmit<Metadata, 'type'>> { type?: string | TypeThunkAsync | object; } interface InitArguments extends Combine<{ type?: DataType; }, Metadata> { } } /** * Type definition for Value * @class Value */ interface ValueStatic { new (owner: DocumentElement, args: Value.InitArguments): Value; prototype: Value; } /** * Type definition of Value prototype * @interface Value */ export interface Value extends ValueClass { } export declare const Value: ValueStatic; /** * @class Value */ declare class ValueClass extends DocumentElement { readonly owner: DocumentElement; readonly name: string | RegExp; type?: DataType; description?: string; examples?: any[] | Record<string, any>; isArray?: boolean; toJSON(options?: ApiDocument.ExportOptions): OpraSchema.Value; } export {};