import type { ServerResponse } from "http"; import type { ISnsEvent } from "../parseEvents/sns"; import type { IS3Event } from "../parseEvents/s3"; import type { ISqs } from "../parseEvents/sqs"; import type { IDdbEvent } from "../parseEvents/ddbStream"; import type { IDestination } from "../parseEvents/index"; import type { LambdaEndpoint } from "../parseEvents/endpoints"; import type { IKinesisEvent } from "../parseEvents/kinesis"; import type { IDocumentDbEvent } from "../parseEvents/documentDb"; import type { Runner } from "./runners/index"; type InvokeSub = (event: any, info?: any) => void | { [key: string]: any; }; type InvokeSuccessSub = (input: any, output: any, info?: any) => void; type InvokeErrorSub = InvokeSuccessSub; export interface ILambdaMock { /** * Function name declared in serverless.yml. */ name: string; /** * Function name which will be published as in AWS. */ outName: string; /** * Deploy Lambda or not to AWS. */ online: boolean | string | string[]; runtime: string; /** * API Gateway and Application Load balancer events. */ endpoints: LambdaEndpoint[]; s3: IS3Event[]; sns: ISnsEvent[]; ddb: IDdbEvent[]; sqs: ISqs[]; kinesis: IKinesisEvent[]; documentDb: IDocumentDbEvent[]; url?: LambdaEndpoint; timeout: number; memorySize: number; environment: { [key: string]: any; }; /** * function handler as declared in serverless.yml. */ handlerPath: string; /** * exported function name */ handlerName: string; /** * esbuild entry point absolute path. */ esEntryPoint: string; /** * bundle absolute path. */ esOutputPath: string; /** * resolved entry point. */ entryPoint: string; invokeSub: InvokeSub[]; invokeSuccessSub: InvokeSuccessSub[]; invokeErrorSub: InvokeErrorSub[]; /** * Invoke this lambda. * * must always be called with "await" or ".then()" * @returns {Promise} * @throws Error */ invoke: (event: any, info?: any, clientContext?: any) => Promise; onError?: IDestination; onSuccess?: IDestination; onFailure?: IDestination; runner: Runner; } export declare class LambdaMock implements ILambdaMock { #private; name: string; outName: string; online: boolean | string | string[]; endpoints: LambdaEndpoint[]; runtime: string; s3: IS3Event[]; sns: ISnsEvent[]; sqs: ISqs[]; ddb: IDdbEvent[]; kinesis: IKinesisEvent[]; documentDb: IDocumentDbEvent[]; url?: LambdaEndpoint; timeout: number; memorySize: number; environment: { [key: string]: any; }; handlerPath: string; handlerName: string; esEntryPoint: string; esOutputPath: string; entryPoint: string; onError?: IDestination; onSuccess?: IDestination; onFailure?: IDestination; invokeSub: InvokeSub[]; invokeSuccessSub: InvokeSuccessSub[]; invokeErrorSub: InvokeErrorSub[]; runner: Runner; static ENABLE_TIMEOUT: boolean; constructor({ name, outName, online, endpoints, runtime, timeout, memorySize, environment, handlerPath, handlerName, esEntryPoint, esOutputPath, entryPoint, s3, sns, sqs, ddb, kinesis, url, documentDb, invokeSub, invokeSuccessSub, invokeErrorSub, onError, onSuccess, onFailure, runner, }: ILambdaMock & { runner: Runner; }); handleErrorDestination(event: any, info: any, error: any, awsRequestId: string): void; handleSuccessDestination(event: any, info: any, response: any, awsRequestId: string): void; invoke(event: any, info?: any, clientContext?: any, response?: ServerResponse): Promise; clear: () => void; } export type { ISnsEvent, IS3Event, ISqs, IDdbEvent, IDestination, LambdaEndpoint, IDocumentDbEvent, IKinesisEvent };