export interface OpenAPIObject { openapi: string; info: InfoObject; servers?: ServerObject[]; paths: PathsObject; components?: ComponentsObject; security?: SecurityRequirementObject[]; tags?: TagObject[]; externalDocs?: ExternalDocumentationObject; } export interface InfoObject { title: string; description?: string; termsOfService?: string; contact?: ContactObject; license?: LicenseObject; version: string; } export interface ContactObject { name?: string; url?: string; email?: string; } export interface LicenseObject { name: string; url?: string; } export interface ServerObject { url: string; description?: string; variables?: Record; } export interface ServerVariableObject { enum?: string[] | boolean[] | number[]; default: string | boolean | number; description?: string; } export interface ComponentsObject { schemas?: Record; responses?: Record; parameters?: Record; examples?: Record; requestBodies?: Record; headers?: Record; securitySchemes?: Record; links?: Record; callbacks?: Record; } export declare type PathsObject = Record; export interface PathItemObject { $ref?: string; summary?: string; description?: string; get?: OperationObject; put?: OperationObject; post?: OperationObject; delete?: OperationObject; options?: OperationObject; head?: OperationObject; patch?: OperationObject; trace?: OperationObject; servers?: ServerObject[]; parameters?: (ParameterObject | ReferenceObject)[]; } export interface OperationObject { tags?: string[]; summary?: string; description?: string; externalDocs?: ExternalDocumentationObject; operationId?: string; parameters?: (ParameterObject | ReferenceObject)[]; requestBody?: RequestBodyObject | ReferenceObject; responses: ResponsesObject; callbacks?: CallbacksObject; deprecated?: boolean; security?: SecurityRequirementObject[]; servers?: ServerObject[]; } export interface ExternalDocumentationObject { description?: string; url: string; } export declare type ParameterLocation = 'query' | 'header' | 'path' | 'cookie'; export declare type ParameterStyle = 'matrix' | 'label' | 'form' | 'simple' | 'spaceDelimited' | 'pipeDelimited' | 'deepObject'; export interface BaseParameterObject { description?: string; required?: boolean; deprecated?: boolean; allowEmptyValue?: boolean; style?: ParameterStyle; explode?: boolean; allowReserved?: boolean; schema?: SchemaObject | ReferenceObject; examples?: Record; example?: any; content?: ContentObject; } export interface ParameterObject extends BaseParameterObject { name: string; in: ParameterLocation; } export interface RequestBodyObject { description?: string; content: ContentObject; required?: boolean; } export declare type ContentObject = Record; export interface MediaTypeObject { schema?: SchemaObject | ReferenceObject; examples?: ExamplesObject; example?: any; encoding?: EncodingObject; } export declare type EncodingObject = Record; export interface EncodingPropertyObject { contentType?: string; headers?: Record; style?: string; explode?: boolean; allowReserved?: boolean; } export interface ResponsesObject extends Record { default?: ResponseObject | ReferenceObject; } export interface ResponseObject { description: string; headers?: HeadersObject; content?: ContentObject; links?: LinksObject; } export declare type CallbacksObject = Record; export declare type CallbackObject = Record; export declare type HeadersObject = Record; export interface ExampleObject { summary?: string; description?: string; value?: any; externalValue?: string; } export declare type LinksObject = Record; export interface LinkObject { operationRef?: string; operationId?: string; parameters?: LinkParametersObject; requestBody?: any | string; description?: string; server?: ServerObject; } export declare type LinkParametersObject = Record; export declare type HeaderObject = BaseParameterObject; export interface TagObject { name: string; description?: string; externalDocs?: ExternalDocumentationObject; } export declare type ExamplesObject = Record; export interface ReferenceObject { $ref: string; } export interface SchemaObject { nullable?: boolean; discriminator?: DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: XmlObject; externalDocs?: ExternalDocumentationObject; example?: any; examples?: any[] | Record; deprecated?: boolean; type?: string; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: Record; additionalProperties?: SchemaObject | ReferenceObject | boolean; patternProperties?: SchemaObject | ReferenceObject | 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; required?: string[]; enum?: any[]; } export declare type SchemasObject = Record; export interface DiscriminatorObject { propertyName: string; mapping?: Record; } export interface XmlObject { name?: string; namespace?: string; prefix?: string; attribute?: boolean; wrapped?: boolean; } export declare type SecuritySchemeType = 'apiKey' | 'http' | 'oauth2' | 'openIdConnect'; export interface SecuritySchemeObject { type: SecuritySchemeType; description?: string; name?: string; in?: string; scheme?: string; bearerFormat?: string; flows?: OAuthFlowsObject; openIdConnectUrl?: string; } 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 declare type SecurityRequirementObject = Record;