import type { Options } from 'serverless'; import type { Logging } from 'serverless/classes/Plugin'; import type { CustomHttpApiEvent, CustomHttpEvent, CustomServerless, HttpResponses, PathParameterPath, ServerlessCommand, ServerlessHooks } from './types/serverless-plugin.types'; import type { Parameter, Response, Swagger } from './types/swagger.types'; export default class ServerlessAutoSwagger { serverless: CustomServerless; options: Options; swagger: Swagger; log: Logging['log']; commands: Record; hooks: ServerlessHooks; constructor(serverless: CustomServerless, options: Options, io?: Logging); registerOptions: () => void; preDeploy: () => Promise; /** Updates this.swagger with serverless custom.autoswagger overrides */ gatherSwaggerOverrides: () => void; /** Updates this.swagger with swagger file overrides */ gatherSwaggerFiles: (swaggerFiles: string[]) => void; gatherTypes: () => Promise; generateSecurity: () => void; generateSwagger: () => Promise; addEndpointsAndLambda: () => void; addSwaggerPath: (functionName: string, http: CustomHttpEvent | CustomHttpApiEvent | string) => void; generatePaths: () => void; formatResponses: (responseData: HttpResponses | undefined) => Record; pathToParam: (pathParam: string, paramInfoOrRequired?: PathParameterPath[string]) => Parameter; httpEventToParameters: (httpEvent: CustomHttpEvent) => Parameter[]; }