import { ExternalDocumentation } from '../../core/models/common/ExternalDocumentation'; import { IExternalDocumentationParent } from '../../core/models/common/IExternalDocumentationParent'; import { Schema } from '../../core/models/common/Schema'; /** * Models an OpenAPI schema. * @author eric.wittmann@gmail.com * @class * @extends Schema */ export declare abstract class OasSchema extends Schema implements IExternalDocumentationParent { format: string; title: string; description: string; default_: any; 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; required: Array; enum_: Array; type: string; items: any; allOf: Array; properties: any; additionalProperties: any; readOnly: boolean; xml: OasXML; externalDocs: ExternalDocumentation; example: any; /** * Creates a child external documentation model. * @return {ExternalDocumentation} */ abstract createExternalDocumentation(): ExternalDocumentation; /** * @see io.apicurio.datamodels.core.models.common.IExternalDocumentationParent#setExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation) * @param {ExternalDocumentation} externalDocs */ setExternalDocumentation(externalDocs: ExternalDocumentation): void; /** * Creates a child XML model. * @return {OasXML} */ abstract createXML(): OasXML; /** * Creates a child schema model. * @return {OasSchema} */ abstract createAllOfSchema(): OasSchema; /** * Creates a child schema model. * @return {OasSchema} */ abstract createItemsSchema(): OasSchema; /** * Creates a child schema model. * @return {OasSchema} */ abstract createAdditionalPropertiesSchema(): OasSchema; /** * Creates a child schema model. * @param {string} propertyName * @return {OasSchema} */ abstract createPropertySchema(propertyName: string): OasSchema; /** * Gets a list of all property names. * @return {string[]} */ getPropertyNames(): Array; /** * Gets a list of all the properties. * @return {OasSchema[]} */ getProperties(): Array; /** * Add a property. * @param {string} propertyName * @param {OasSchema} schema * @return {OasSchema} */ addProperty(propertyName: string, schema: OasSchema): OasSchema; /** * Removes a property by name. * @param {string} propertyName * @return {OasSchema} */ removeProperty(propertyName: string): OasSchema; /** * Gets a single property. * @param {string} propertyName * @return {OasSchema} */ getProperty(propertyName: string): OasSchema; /** * Returns true if there is a single items schema. * @return {boolean} */ hasItemsSchema(): boolean; /** * Returns true if there is a list of items schemas. Even if there is only one schema in the list. * @return {boolean} */ hasItemsSchemas(): boolean; /** * Returns true if there is an additional properties schema. * @return {boolean} */ hasAdditionalPropertiesSchema(): boolean; /** * Returns true if there is an "additionalProperties" property that is a boolean value and not a schema. * @return {boolean} */ hasAdditionalPropertiesBoolean(): boolean; /** * Adds an AllOf schema. * @param {OasSchema} schema */ addAllOfSchema(schema: OasSchema): void; /** * Removes a allOf schema. * @param {OasSchema} schema */ removeAllOfSchema(schema: OasSchema): void; constructor(); } import { OasXML } from './OasXML';