import { Type } from '@nestjs/common'; import { EnumSchemaAttributes } from './enum-schema-attributes.interface'; import { ReferenceObject, SchemaObject } from './open-api-spec.interface'; export type EnumAllowedTypes = any[] | Record | (() => any[] | Record); interface SchemaObjectCommonMetadata extends Omit { isArray?: boolean; name?: string; enum?: EnumAllowedTypes; } export type SchemaObjectMetadata = (SchemaObjectCommonMetadata & { type?: Type | Function | [Function] | 'array' | 'string' | 'number' | 'boolean' | 'integer' | 'file' | 'null'; required?: boolean; }) | ({ type?: Type | Function | [Function] | Record; required?: boolean; enumName: string; enumSchema?: EnumSchemaAttributes; } & SchemaObjectCommonMetadata) | ({ type: 'object'; properties: Record; required?: string[]; selfRequired?: boolean; } & SchemaObjectCommonMetadata) | ({ type: 'object'; properties?: Record; additionalProperties: SchemaObject | ReferenceObject | boolean; required?: string[]; selfRequired?: boolean; } & SchemaObjectCommonMetadata); export {};