import { JsonSchema } from "../JsonSchema"; type Map = { [x: string]: T2; }; export declare class OpenAPIObject { openapi?: string; info?: InfoObject; servers?: ServerObject[]; paths?: PathsObject; components?: ComponentsObject; security?: SecurityRequirementObject[]; tags?: TagObject[]; externalDocs?: ExternalDocumentationObject; } export declare class InfoObject { title?: string; description?: string; termsOfService?: string; contact?: ContactObject; license?: LicenseObject; version?: string; } export declare class ContactObject { name?: string; url?: string; email?: string; } export declare class LicenseObject { name?: string; url?: string; } export declare class ServerObject { url?: string; description?: string; variables?: Record; } export declare class ServerVariableObject { enum?: string; default?: string; description?: string; } export declare class ComponentsObject { schemas?: SchemaObject; responses?: string; parameters?: string; examples?: string; requestBodies?: string; headers?: string; securitySchemes?: { [x: string]: SecuritySchemeObject; }; links?: string; callbacks?: string; } export declare class PathsObject { [key: string]: PathItemObject; } export declare class 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[]; } export declare class OperationObject { tags?: string[]; summary?: string; description?: string; externalDocs?: ExternalDocumentationObject; operationId?: string; parameters?: ParameterObject[]; requestBody?: RequestBodyObject | ReferenceObject; responses?: ResponsesObject; callbacks?: string; deprecated?: boolean; security?: SecurityRequirementObject[]; servers?: ServerObject; } export declare class ExternalDocumentationObject { description?: string; url?: string; } export declare class ParameterObject { name?: string; in?: string; description?: string; required?: boolean; deprecated?: boolean; allowEmptyValue?: boolean; schema?: SchemaObject; } export declare class RequestBodyObject { description?: string; content?: Map; required?: boolean; } export declare class MediaTypeObject { schema?: SchemaObject; example?: undefined; examples?: string; encoding?: string; } export declare class EncodingObject { contentType?: string; headers?: string; style?: string; explode?: boolean; allowReserved?: boolean; } export declare class ResponsesObject { default?: ResponseObject; [statusCode: string]: ResponseObject; } export declare class ResponseObject { description?: string; headers?: { [x: string]: HeaderObject; }; content?: MediaTypeObject; links?: string; } export declare class CallbackObject { [key: string]: PathItemObject; } export declare class ExampleObject { summary?: string; description?: string; value?: undefined; externalValue?: string; } export declare class LinkObject { operationRef?: string; operationId?: string; parameters?: string; requestBody?: { expression: any; }; description?: string; server?: ServerObject; } export declare class HeaderObject { name?: string; description?: string; externalDocs?: ExternalDocumentationObject; } export declare class TagObject { name?: string; description?: string; externalDocs?: ExternalDocumentationObject; } export declare class ReferenceObject { $ref?: string; summary?: string; description?: string; } export declare class SchemaObject extends JsonSchema { nullable?: boolean; discriminator?: DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: XMLObject; externalDocs?: ExternalDocumentationObject; example?: undefined; deprecated?: boolean; } export declare class DiscriminatorObject { propertyName?: string; mapping?: string; } export declare class XMLObject { name?: string; namespace?: string; prefix?: string; attribute?: boolean; wrapped?: boolean; } export declare class SecuritySchemeObject { type?: string; description?: string; name?: string; in?: string; scheme?: string; bearerFormat?: string; flows?: OAuthFlowsObject; openIdConnectUrl?: string; } export declare class OAuthFlowsObject { implicit?: OAuthFlowObject; password?: OAuthFlowObject; clientCredentials?: OAuthFlowObject; authorizationCode?: OAuthFlowObject; } export declare class OAuthFlowObject { authorizationUrl?: string; tokenUrl?: string; refreshUrl?: string; scopes?: { [x: string]: string; }; } export declare class SecurityRequirementObject { [key: string]: string[]; } export {};