import { InfoObject, ReferenceObject, SchemaObject, ServerObject, ServerVariableObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface'; import { AmqpChannelBindingObject, AmqpMessageBindingObject, AmqpOperationBindingObject, AmqpServerBindingObject, KafkaChannelBindingObject, KafkaMessageBindingObject, KafkaOperationBindingObject, KafkaServerBindingObject } from './bindingInterfaces'; export interface AsyncAPIObject { asyncapi: string; id?: string; info: InfoObject; servers?: Record; channels: AsyncChannelsObject; components?: AyncComponentsObject; tags?: AsyncTagObject[]; externalDocs?: ExternalDocumentationObject; defaultContentType?: string; } export declare type AsyncChannelsObject = Record; export interface AsyncChannelObject { description?: string; subscribe?: AsyncOperationObject; publish?: AsyncOperationObject; parameters?: Record; bindings?: Record; } export interface AsyncServerVariableObject extends ServerVariableObject { examples?: string[]; } export interface AsyncServerObject extends Omit { variables?: Record; protocol: string; protocolVersion?: string; security?: SecurityObject[]; bindings?: Record; } export interface SecurityObject extends Record { } export interface AyncComponentsObject { schemas?: Record; messages?: Record; securitySchemes?: Record; parameters?: Record; correlationIds?: Record; operationTraits?: Record; messageTraits?: Record; serverBindings?: Record; channelBindings?: Record; operationBindings?: Record; messageBindings?: Record; } export interface AsyncMessageObject extends AsyncMessageTraitObject { payload?: any; traits?: AsyncMessageTraitObject; } export interface AsyncOperationObject { operationId?: string; summary?: string; description?: string; tags?: AsyncTagObject[]; externalDocs?: ExternalDocumentationObject; bindings?: Record; traits?: Record; message?: AsyncMessageObject | ReferenceObject; } export interface AsyncOperationTraitObject { operationId?: string; summary?: string; description?: string; tags?: AsyncTagObject[]; externalDocs?: ExternalDocumentationObject; bindings?: Record; } export interface AsyncMessageTraitObject { headers?: SchemaObject; correlationId?: AsyncCorrelationObject; schemaFormat?: string; contentType?: string; name?: string; title?: string; summary?: string; description?: string; tags?: AsyncTagObject[]; externalDocs?: ExternalDocumentationObject; bindings?: Record; examples?: ExamplesObject; } export interface AsyncCorrelationObject { description?: string; location: string; } export interface AsyncTagObject { name: string; description?: string; externalDocs?: ExternalDocumentationObject; } export interface AsyncSecuritySchemeObject { type: SecuritySchemeType; description?: string; name?: string; in?: string; scheme?: string; bearerFormat?: string; flows?: OAuthFlowsObject; openIdConnectUrl?: string; } export declare type SecuritySchemeType = 'userPassword' | 'apiKey' | 'X509' | 'symmetricEncryption' | 'asymmetricEncryption' | 'http' | 'oauth2' | 'openIdConnect'; export interface OAuthFlowsObject { implicit?: OAuthFlowObject; password?: OAuthFlowObject; clientCredentials?: OAuthFlowObject; authorizationCode?: OAuthFlowObject; } export interface OAuthFlowObject { authorizationUrl?: string; tokenUrl?: string; refreshUrl?: string; scopes: ScopesObject; } export declare type ScopesObject = Record; export interface DiscriminatorObject { propertyName: string; mapping?: Record; } export interface ParameterObject extends BaseParameterObject { } export interface BaseParameterObject { description?: string; schema?: SchemaObject | ReferenceObject; location?: string; } export interface ExampleObject { summary?: string; description?: string; value?: any; externalValue?: string; } export declare type ContentObject = Record; export interface MediaTypeObject { schema?: SchemaObject | ReferenceObject; examples?: ExamplesObject; example?: any; encoding?: EncodingObject; } export declare type ExamplesObject = Record; export declare type EncodingObject = Record; export interface EncodingPropertyObject { contentType?: string; headers?: Record; style?: string; explode?: boolean; allowReserved?: boolean; } export declare type HeaderObject = BaseParameterObject; export interface ExternalDocumentationObject { description?: string; url: string; }