import { JsonSchemaDraft04 } from './jsonSchemaDraft04'; export declare namespace OpenApisV2 { interface SchemaJson { swagger: '2.0'; info: SchemaJson.Definitions.Info; host?: string; basePath?: string; schemes?: SchemaJson.Definitions.SchemesList; consumes?: SchemaJson.Definitions.MimeType[]; produces?: SchemaJson.Definitions.MimeType[]; paths: SchemaJson.Definitions.Paths; definitions?: SchemaJson.Definitions.Definitions; parameters?: SchemaJson.Definitions.ParameterDefinitions; responses?: SchemaJson.Definitions.ResponseDefinitions; security?: SchemaJson.Definitions.Security; securityDefinitions?: SchemaJson.Definitions.SecurityDefinitions; tags?: SchemaJson.Definitions.Tag[]; externalDocs?: SchemaJson.Definitions.ExternalDocs; } namespace SchemaJson { namespace Definitions { interface ApiKeySecurity { type: 'apiKey'; name: string; in: 'header' | 'query'; description?: string; } interface BasicAuthenticationSecurity { type: 'basic'; description?: string; } interface BodyParameter { description?: string; name: string; in: 'body'; required?: boolean; schema: Schema; } type CollectionFormat = 'csv' | 'ssv' | 'tsv' | 'pipes'; type CollectionFormatWithMulti = 'csv' | 'ssv' | 'tsv' | 'pipes' | 'multi'; interface Contact { name?: string; url?: string; email?: string; } type Default = JsonSchemaDraft04.Schema.Properties.Default; type Definitions = Record; type Enum = JsonSchemaDraft04.Schema.Properties.Enum; type Examples = Record; type ExclusiveMaximum = JsonSchemaDraft04.Schema.Properties.ExclusiveMaximum; type ExclusiveMinimum = JsonSchemaDraft04.Schema.Properties.ExclusiveMinimum; interface ExternalDocs { description?: string; url: string; } interface FileSchema { format?: string; title?: JsonSchemaDraft04.Schema.Properties.Title; description?: JsonSchemaDraft04.Schema.Properties.Description; default?: JsonSchemaDraft04.Schema.Properties.Default; required?: JsonSchemaDraft04.Schema.Definitions.StringArray; type: 'file'; readOnly?: boolean; externalDocs?: ExternalDocs; example?: any; } interface FormDataParameterSubSchema { required?: boolean; in: 'formData'; description?: string; name: string; allowEmptyValue?: boolean; type?: 'string' | 'number' | 'boolean' | 'integer' | 'array' | 'file'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormatWithMulti; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; } interface Header { type: 'string' | 'number' | 'integer' | 'boolean' | 'array'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormat; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; description?: string; } interface HeaderParameterSubSchema { required?: boolean; in: 'header'; description?: string; name: string; type?: 'string' | 'number' | 'boolean' | 'integer' | 'array'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormat; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; } type Headers = Record; interface Info { title: string; version: string; description?: string; termsOfService?: string; contact?: Contact; license?: License; } interface JsonReference { $ref: string; } interface License { name: string; url?: string; } type MaxItems = JsonSchemaDraft04.Schema.Definitions.PositiveInteger; type MaxLength = JsonSchemaDraft04.Schema.Definitions.PositiveInteger; type Maximum = JsonSchemaDraft04.Schema.Properties.Maximum; type MediaTypeList = MimeType[]; type MimeType = string; type MinItems = JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0; type MinLength = JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0; type Minimum = JsonSchemaDraft04.Schema.Properties.Minimum; type MultipleOf = JsonSchemaDraft04.Schema.Properties.MultipleOf; type NonBodyParameter = HeaderParameterSubSchema | FormDataParameterSubSchema | QueryParameterSubSchema | PathParameterSubSchema; interface Oauth2AccessCodeSecurity { type: 'oauth2'; flow: 'accessCode'; scopes?: Oauth2Scopes; authorizationUrl: string; tokenUrl: string; description?: string; } interface Oauth2ApplicationSecurity { type: 'oauth2'; flow: 'application'; scopes?: Oauth2Scopes; tokenUrl: string; description?: string; } interface Oauth2ImplicitSecurity { type: 'oauth2'; flow: 'implicit'; scopes?: Oauth2Scopes; authorizationUrl: string; description?: string; } interface Oauth2PasswordSecurity { type: 'oauth2'; flow: 'password'; scopes?: Oauth2Scopes; tokenUrl: string; description?: string; } type Oauth2Scopes = Record; interface Operation { tags?: string[]; summary?: string; description?: string; externalDocs?: ExternalDocs; operationId?: string; produces?: MimeType[]; consumes?: MimeType[]; parameters?: ParametersList; responses: Responses; schemes?: SchemesList; deprecated?: boolean; security?: Security; } type Parameter = BodyParameter | NonBodyParameter; type ParameterDefinitions = Record; type ParametersList = (Parameter | JsonReference)[]; interface PathItem { $ref?: string; get?: Operation; put?: Operation; post?: Operation; delete?: Operation; options?: Operation; head?: Operation; patch?: Operation; parameters?: ParametersList; } interface PathParameterSubSchema { required: true; in: 'path'; description?: string; name: string; type?: 'string' | 'number' | 'boolean' | 'integer' | 'array'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormat; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; } type Paths = Record; type Pattern = JsonSchemaDraft04.Schema.Properties.Pattern; interface PrimitivesItems { type?: 'string' | 'number' | 'integer' | 'boolean' | 'array'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormat; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; } interface QueryParameterSubSchema { required?: boolean; in: 'query'; description?: string; name: string; allowEmptyValue?: boolean; type?: 'string' | 'number' | 'boolean' | 'integer' | 'array'; format?: string; items?: PrimitivesItems; collectionFormat?: CollectionFormatWithMulti; default?: Default; maximum?: Maximum; exclusiveMaximum?: ExclusiveMaximum; minimum?: Minimum; exclusiveMinimum?: ExclusiveMinimum; maxLength?: MaxLength; minLength?: MinLength; pattern?: Pattern; maxItems?: MaxItems; minItems?: MinItems; uniqueItems?: UniqueItems; enum?: Enum; multipleOf?: MultipleOf; } interface Response { description: string; schema?: Schema | FileSchema; headers?: Headers; examples?: Examples; } type ResponseDefinitions = Record; type ResponseValue = Response | JsonReference; type Responses = Record; interface Schema { $ref?: string; format?: string; title?: JsonSchemaDraft04.Schema.Properties.Title; description?: JsonSchemaDraft04.Schema.Properties.Description; default?: JsonSchemaDraft04.Schema.Properties.Default; multipleOf?: JsonSchemaDraft04.Schema.Properties.MultipleOf; maximum?: JsonSchemaDraft04.Schema.Properties.Maximum; exclusiveMaximum?: JsonSchemaDraft04.Schema.Properties.ExclusiveMaximum; minimum?: JsonSchemaDraft04.Schema.Properties.Minimum; exclusiveMinimum?: JsonSchemaDraft04.Schema.Properties.ExclusiveMinimum; maxLength?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger; minLength?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0; pattern?: JsonSchemaDraft04.Schema.Properties.Pattern; maxItems?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger; minItems?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0; uniqueItems?: JsonSchemaDraft04.Schema.Properties.UniqueItems; maxProperties?: JsonSchemaDraft04.Schema.Definitions.PositiveInteger; minProperties?: JsonSchemaDraft04.Schema.Definitions.PositiveIntegerDefault0; required?: JsonSchemaDraft04.Schema.Definitions.StringArray; enum?: JsonSchemaDraft04.Schema.Properties.Enum; additionalProperties?: Schema | boolean; type?: JsonSchemaDraft04.Schema.Properties.Type; items?: Schema | [ Schema, ...Schema[] ]; allOf?: [ Schema, ...Schema[] ]; properties?: Record; discriminator?: string; readOnly?: boolean; xml?: Xml; externalDocs?: ExternalDocs; example?: any; } type SchemesList = ('http' | 'https' | 'ws' | 'wss')[]; type Security = SecurityRequirement[]; type SecurityDefinitions = Record; type SecurityRequirement = Record; interface Tag { name: string; description?: string; externalDocs?: ExternalDocs; } type UniqueItems = JsonSchemaDraft04.Schema.Properties.UniqueItems; interface Xml { name?: string; namespace?: string; prefix?: string; attribute?: boolean; wrapped?: boolean; } } } } export import SwaggerIo = OpenApisV2;