@opra/common
Version:
Opra common package
50 lines (49 loc) • 1.46 kB
TypeScript
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 {};