import { Type } from '@nestjs/common'; import { BaseParameterObject, ParameterObject, ReferenceObject, SchemaObject } from '../interfaces/open-api-spec.interface'; import { SchemaObjectMetadata } from '../interfaces/schema-object-metadata.interface'; import { ModelPropertiesAccessor } from './model-properties-accessor'; import { ParamWithTypeMetadata } from './parameter-metadata-accessor'; import { SwaggerTypesMapper } from './swagger-types-mapper'; export declare class SchemaObjectFactory { private readonly modelPropertiesAccessor; private readonly swaggerTypesMapper; constructor(modelPropertiesAccessor: ModelPropertiesAccessor, swaggerTypesMapper: SwaggerTypesMapper); createFromModel(parameters: ParamWithTypeMetadata[], schemas: Record): Array; createQueryOrParamSchema(param: ParamWithTypeMetadata, schemas: Record): ParamWithTypeMetadata | Partial | ParameterObject[] | { type: string; name?: string | number | object; in?: import("../interfaces/open-api-spec.interface").ParameterLocation | "body" | "placeholder"; isArray?: boolean; required: true; enum?: unknown[]; enumName?: string; format: string; }; extractPropertiesFromType(type: Type, schemas: Record, pendingSchemasRefs?: string[]): ParameterObject[]; exploreModelSchema(type: Type | Function, schemas: Record, pendingSchemasRefs?: string[]): string; mergePropertyWithMetadata(key: string, prototype: Type, schemas: Record, pendingSchemaRefs: string[], metadata?: SchemaObjectMetadata): SchemaObjectMetadata | ReferenceObject | ParameterObject; createEnumParam(param: ParamWithTypeMetadata & BaseParameterObject, schemas: Record): Partial; createEnumSchemaType(key: string, metadata: SchemaObjectMetadata, schemas: Record): Partial<{ $ref: string; items?: SchemaObject | ReferenceObject; name: string; type: string; isArray?: boolean; required?: boolean; enumName?: string; externalDocs?: import("../interfaces/open-api-spec.interface").ExternalDocumentationObject; nullable?: boolean; discriminator?: import("../interfaces/open-api-spec.interface").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("../interfaces/open-api-spec.interface").XmlObject; example?: any; deprecated?: boolean; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; properties?: Record; additionalProperties?: boolean | SchemaObject | ReferenceObject; patternProperties?: any; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; enum?: any[]; }> | { name: string; type?: string | Function | Record | Type | [Function]; isArray?: boolean; required?: boolean; enumName?: string; externalDocs?: import("../interfaces/open-api-spec.interface").ExternalDocumentationObject; nullable?: boolean; discriminator?: import("../interfaces/open-api-spec.interface").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("../interfaces/open-api-spec.interface").XmlObject; example?: any; deprecated?: boolean; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: Record; additionalProperties?: boolean | SchemaObject | ReferenceObject; patternProperties?: any; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; enum?: any[]; }; createNotBuiltInTypeReference(key: string, metadata: SchemaObjectMetadata, trueMetadataType: unknown, schemas: Record, pendingSchemaRefs: string[]): SchemaObjectMetadata; transformToArraySchemaProperty(metadata: SchemaObjectMetadata, key: string, type: string | Record): SchemaObjectMetadata; mapArrayCtorParam(param: ParamWithTypeMetadata): any; createFromObjectLiteral(key: string, literalObj: Record, schemas: Record): { name: string; type: string; properties: {}; }; createFromNestedArray(key: string, metadata: SchemaObjectMetadata, schemas: Record, pendingSchemaRefs: string[]): any; private createSchemaMetadata; private isArrayCtor; private isPrimitiveType; private isLazyTypeFunc; private getTypeName; private isObjectLiteral; private extractPropertyModifiers; }