export interface APIGatewayEventRequestContext { accountId: string; apiId: string; authorizer?: AuthResponseContext | null; connectedAt?: number; connectionId?: string; domainName?: string; domainPrefix?: string; eventType?: string; extendedRequestId?: string; httpMethod: string; identity: { accessKey: string | null; accountId: string | null; apiKey: string | null; apiKeyId: string | null; caller: string | null; cognitoAuthenticationProvider: string | null; cognitoAuthenticationType: string | null; cognitoIdentityId: string | null; cognitoIdentityPoolId: string | null; principalOrgId: string | null; sourceIp: string; user: string | null; userAgent: string | null; userArn: string | null; }; messageDirection?: string; messageId?: string | null; path: string; stage: string; requestId: string; requestTime?: string; requestTimeEpoch: number; resourceId: string; resourcePath: string; routeKey?: string;}
export interface APIGatewayProxyEvent { body: string | null; headers: { [name: string]: string }; multiValueHeaders: { [name: string]: string[] }; httpMethod: string; isBase64Encoded: boolean; path: string; pathParameters: { [name: string]: string } | null; queryStringParameters: { [name: string]: string } | null; multiValueQueryStringParameters: { [name: string]: string[] } | null; stageVariables: { [name: string]: string } | null; requestContext: APIGatewayEventRequestContext; resource: string;}export type APIGatewayEvent = APIGatewayProxyEvent;
export interface ALBEventRequestContext { elb: { targetGroupArn: string; };}export interface ALBEvent { requestContext: ALBEventRequestContext; httpMethod: string; path: string; queryStringParameters?: { [parameter: string]: string }; headers?: { [header: string]: string }; multiValueQueryStringParameters?: { [parameter: string]: string[] }; multiValueHeaders?: { [header: string]: string[] }; body: string | null; isBase64Encoded: boolean;}
export interface CustomAuthorizerEvent { type: string; methodArn: string; authorizationToken?: string; resource?: string; path?: string; httpMethod?: string; headers?: { [name: string]: string }; multiValueHeaders?: { [name: string]: string[] }; pathParameters?: { [name: string]: string } | null; queryStringParameters?: { [name: string]: string } | null; multiValueQueryStringParameters?: { [name: string]: string[] } | null; stageVariables?: { [name: string]: string }; requestContext?: APIGatewayEventRequestContext; domainName?: string; apiId?: string;}
export interface AttributeValue { B?: string; BS?: string[]; BOOL?: boolean; L?: AttributeValue[]; M?: { [id: string]: AttributeValue }; N?: string; NS?: string[]; NULL?: boolean; S?: string; SS?: string[];}
export interface StreamRecord { ApproximateCreationDateTime?: number; Keys?: { [key: string]: AttributeValue }; NewImage?: { [key: string]: AttributeValue }; OldImage?: { [key: string]: AttributeValue }; SequenceNumber?: string; SizeBytes?: number; StreamViewType?: 'KEYS_ONLY' | 'NEW_IMAGE' | 'OLD_IMAGE' | 'NEW_AND_OLD_IMAGES';}
export interface DynamoDBRecord { awsRegion?: string; dynamodb?: StreamRecord; eventID?: string; eventName?: 'INSERT' | 'MODIFY' | 'REMOVE'; eventSource?: string; eventSourceARN?: string; eventVersion?: string; userIdentity?: any;}
export interface DynamoDBStreamEvent { Records: DynamoDBRecord[];}
export interface SNSMessageAttribute { Type: string; Value: string;}
export interface SNSMessageAttributes { [name: string]: SNSMessageAttribute;}
export interface SNSMessage { SignatureVersion: string; Timestamp: string; Signature: string; SigningCertUrl: string; MessageId: string; Message: string; MessageAttributes: SNSMessageAttributes; Type: string; UnsubscribeUrl: string; TopicArn: string; Subject: string;}
export interface SNSEventRecord { EventVersion: string; EventSubscriptionArn: string; EventSource: string; Sns: SNSMessage;}
export interface SNSEvent { Records: SNSEventRecord[];}
export interface S3EventRecordGlacierRestoreEventData { lifecycleRestorationExpiryTime: string; lifecycleRestoreStorageClass: string;}
export interface S3EventRecordGlacierEventData { restoreEventData: S3EventRecordGlacierRestoreEventData;}
export interface S3EventRecord { eventVersion: string; eventSource: string; awsRegion: string; eventTime: string; eventName: string; userIdentity: { principalId: string; }; requestParameters: { sourceIPAddress: string; }; responseElements: { 'x-amz-request-id': string; 'x-amz-id-2': string; }; s3: { s3SchemaVersion: string; configurationId: string; bucket: { name: string; ownerIdentity: { principalId: string; }; arn: string; }; object: { key: string; size: number; eTag: string; versionId?: string; sequencer: string; }; }; glacierEventData?: S3EventRecordGlacierEventData;}
export interface S3Event { Records: S3EventRecord[];}
export type S3CreateEvent = S3Event;
export interface S3BatchEvent { invocationSchemaVersion: string; invocationId: string; job: S3BatchEventJob; tasks: S3BatchEventTask[];}
export interface S3BatchEventJob { id: string;}
export interface S3BatchEventTask { taskId: string; s3Key: string; s3VersionId: string | null; s3BucketArn: string;}
export interface S3BatchResult { invocationSchemaVersion: string; treatMissingKeysAs: S3BatchResultResultCode; invocationId: string; results: S3BatchResultResult[];}
export type S3BatchResultResultCode = 'Succeeded' | 'TemporaryFailure' | 'PermanentFailure';
export interface S3BatchResultResult { taskId: string; resultCode: S3BatchResultResultCode; resultString: string;}
export interface CognitoUserPoolTriggerEvent { version: number; triggerSource: | 'PreSignUp_SignUp' | 'PreSignUp_ExternalProvider' | 'PostConfirmation_ConfirmSignUp' | 'PreAuthentication_Authentication' | 'PostAuthentication_Authentication' | 'CustomMessage_SignUp' | 'CustomMessage_AdminCreateUser' | 'CustomMessage_ResendCode' | 'CustomMessage_ForgotPassword' | 'CustomMessage_UpdateUserAttribute' | 'CustomMessage_VerifyUserAttribute' | 'CustomMessage_Authentication' | 'DefineAuthChallenge_Authentication' | 'CreateAuthChallenge_Authentication' | 'VerifyAuthChallengeResponse_Authentication' | 'PreSignUp_AdminCreateUser' | 'PostConfirmation_ConfirmForgotPassword' | 'TokenGeneration_HostedAuth' | 'TokenGeneration_Authentication' | 'TokenGeneration_NewPasswordChallenge' | 'TokenGeneration_AuthenticateDevice' | 'TokenGeneration_RefreshTokens' | 'UserMigration_Authentication' | 'UserMigration_ForgotPassword'; region: string; userPoolId: string; userName?: string; callerContext: { awsSdkVersion: string; clientId: string; }; request: { userAttributes: { [key: string]: string }; validationData?: { [key: string]: string }; codeParameter?: string; linkParameter?: string; usernameParameter?: string; newDeviceUsed?: boolean; session?: Array<{ challengeName: | 'CUSTOM_CHALLENGE' | 'PASSWORD_VERIFIER' | 'SMS_MFA' | 'DEVICE_SRP_AUTH' | 'DEVICE_PASSWORD_VERIFIER' | 'ADMIN_NO_SRP_AUTH'; challengeResult: boolean; challengeMetadata?: string; }>; challengeName?: string; privateChallengeParameters?: { [key: string]: string }; challengeAnswer?: string; password?: string; }; response: { autoConfirmUser?: boolean; autoVerifyPhone?: boolean; autoVerifyEmail?: boolean; smsMessage?: string; emailMessage?: string; emailSubject?: string; challengeName?: string; issueTokens?: boolean; failAuthentication?: boolean; publicChallengeParameters?: { [key: string]: string }; privateChallengeParameters?: { [key: string]: string }; challengeMetadata?: string; answerCorrect?: boolean; userAttributes?: { [key: string]: string }; finalUserStatus?: 'CONFIRMED' | 'RESET_REQUIRED'; messageAction?: 'SUPPRESS'; desiredDeliveryMediums?: Array<'EMAIL' | 'SMS'>; forceAliasCreation?: boolean; claimsOverrideDetails?: { claimsToAddOrOverride?: { [key: string]: string }; claimsToSuppress?: string[]; groupOverrideDetails?: null | { groupsToOverride?: string[]; iamRolesToOverride?: string[]; preferredRole?: string; }; }; };}export type CognitoUserPoolEvent = CognitoUserPoolTriggerEvent;
export interface CloudFormationCustomResourceEventCommon { ServiceToken: string; ResponseURL: string; StackId: string; RequestId: string; LogicalResourceId: string; ResourceType: string; ResourceProperties: { ServiceToken: string; [Key: string]: any; };}
export interface CloudFormationCustomResourceCreateEvent extends CloudFormationCustomResourceEventCommon { RequestType: 'Create';}
export interface CloudFormationCustomResourceUpdateEvent extends CloudFormationCustomResourceEventCommon { RequestType: 'Update'; PhysicalResourceId: string; OldResourceProperties: { [Key: string]: any; };}
export interface CloudFormationCustomResourceDeleteEvent extends CloudFormationCustomResourceEventCommon { RequestType: 'Delete'; PhysicalResourceId: string;}
export type CloudFormationCustomResourceEvent = | CloudFormationCustomResourceCreateEvent | CloudFormationCustomResourceUpdateEvent | CloudFormationCustomResourceDeleteEvent;
export interface CloudFormationCustomResourceResponseCommon { PhysicalResourceId: string; StackId: string; RequestId: string; LogicalResourceId: string; Data?: { [Key: string]: any; }; NoEcho?: boolean;}
export interface CloudFormationCustomResourceSuccessResponse extends CloudFormationCustomResourceResponseCommon { Status: 'SUCCESS'; Reason?: string;}
export interface CloudFormationCustomResourceFailedResponse extends CloudFormationCustomResourceResponseCommon { Status: 'FAILED'; Reason: string;}
export type CloudFormationCustomResourceResponse = | CloudFormationCustomResourceSuccessResponse | CloudFormationCustomResourceFailedResponse;
export interface ScheduledEvent { account: string; region: string; detail: any; 'detail-type': string; source: string; time: string; id: string; resources: string[];}
export interface CloudWatchLogsEvent { awslogs: CloudWatchLogsEventData;}
export interface CloudWatchLogsEventData { data: string;}
export interface CloudWatchLogsDecodedData { owner: string; logGroup: string; logStream: string; subscriptionFilters: string[]; messageType: string; logEvents: CloudWatchLogsLogEvent[];}
export interface CloudWatchLogsLogEvent { id: string; timestamp: number; message: string; extractedFields?: { [key: string]: string };}
export interface Context { callbackWaitsForEmptyEventLoop: boolean; functionName: string; functionVersion: string; invokedFunctionArn: string; memoryLimitInMB: string; awsRequestId: string; logGroupName: string; logStreamName: string; identity?: CognitoIdentity; clientContext?: ClientContext;
getRemainingTimeInMillis(): number;
done(error?: Error, result?: any): void; fail(error: Error | string): void; succeed(messageOrObject: any): void; succeed(message: string, object: any): void;}
export interface CognitoIdentity { cognitoIdentityId: string; cognitoIdentityPoolId: string;}
export interface ClientContext { client: ClientContextClient; Custom?: any; env: ClientContextEnv;}
export interface ClientContextClient { installationId: string; appTitle: string; appVersionName: string; appVersionCode: string; appPackageName: string;}
export interface ClientContextEnv { platformVersion: string; platform: string; make: string; model: string; locale: string;}
export interface APIGatewayProxyResult { statusCode: number; headers?: { [header: string]: boolean | number | string; }; multiValueHeaders?: { [header: string]: Array<boolean | number | string>; }; body: string; isBase64Encoded?: boolean;}export type ProxyResult = APIGatewayProxyResult;
export interface ALBResult { statusCode: number; statusDescription: string; headers?: { [header: string]: boolean | number | string }; multiValueHeaders?: { [header: string]: Array<boolean | number | string> }; body: string; isBase64Encoded: boolean;}
export interface CustomAuthorizerResult { principalId: string; policyDocument: PolicyDocument; context?: AuthResponseContext; usageIdentifierKey?: string;}export type AuthResponse = CustomAuthorizerResult;
export interface PolicyDocument { Version: string; Id?: string; Statement: Statement[];}
export interface ConditionBlock { [condition: string]: Condition | Condition[];}
export interface Condition { [key: string]: string | string[];}
export type Statement = BaseStatement & StatementAction & (StatementResource | StatementPrincipal);
export interface BaseStatement { Effect: string; Sid?: string; Condition?: ConditionBlock;}
export type PrincipalValue = { [key: string]: string | string[] } | string | string[];export interface MaybeStatementPrincipal { Principal?: PrincipalValue; NotPrincipal?: PrincipalValue;}export interface MaybeStatementResource { Resource?: string | string[]; NotResource?: string | string[];}export type StatementAction = { Action: string | string[] } | { NotAction: string | string[] };export type StatementResource = MaybeStatementPrincipal & ({ Resource: string | string[] } | { NotResource: string | string[] });export type StatementPrincipal = MaybeStatementResource & ({ Principal: PrincipalValue } | { NotPrincipal: PrincipalValue });export interface AuthResponseContext { [name: string]: any;}
export interface S3ArtifactLocation { bucketName: string; objectKey: string;}export interface S3ArtifactStore { type: 'S3'; s3Location: S3ArtifactLocation;}
export type ArtifactLocation = S3ArtifactStore;
export interface Artifact { name: string; revision: string | null; location: ArtifactLocation;}
export interface Credentials { accessKeyId: string; secretAccessKey: string; sessionToken?: string;}
export interface EncryptionKey { type: string; id: string;}
export interface CodePipelineEvent { 'CodePipeline.job': { id: string; accountId: string; data: { actionConfiguration: { configuration: { FunctionName: string; UserParameters: string; }; }; inputArtifacts: Artifact[]; outputArtifacts: Artifact[]; artifactCredentials: Credentials; encryptionKey?: EncryptionKey & { type: 'KMS' }; continuationToken?: string; }; };}
export type CodePipelineState = 'STARTED' | 'SUCCEEDED' | 'RESUMED' | 'FAILED' | 'CANCELED' | 'SUPERSEDED';
export type CodePipelineStageState = 'STARTED' | 'SUCCEEDED' | 'RESUMED' | 'FAILED' | 'CANCELED';
export type CodePipelineActionState = 'STARTED' | 'SUCCEEDED' | 'FAILED' | 'CANCELED';
export interface CodePipelineCloudWatchPipelineEvent { version: string; id: string; 'detail-type': 'CodePipeline Pipeline Execution State Change'; source: 'aws.codepipeline'; account: string; time: string; region: string; resources: string[]; detail: { pipeline: string; version: number; state: CodePipelineState; 'execution-id': string; };}
export interface CodePipelineCloudWatchStageEvent { version: string; id: string; 'detail-type': 'CodePipeline Stage Execution State Change'; source: 'aws.codepipeline'; account: string; time: string; region: string; resources: string[]; detail: { pipeline: string; version: number; 'execution-id': string; stage: string; state: CodePipelineStageState; };}
export type CodePipelineActionCategory = 'Approval' | 'Build' | 'Deploy' | 'Invoke' | 'Source' | 'Test';
export interface CodePipelineCloudWatchActionEvent { version: string; id: string; 'detail-type': 'CodePipeline Action Execution State Change'; source: 'aws.codepipeline'; account: string; time: string; region: string; resources: string[]; detail: { pipeline: string; version: number; 'execution-id': string; stage: string; action: string; state: CodePipelineActionState; type: { owner: 'AWS' | 'Custom' | 'ThirdParty'; category: CodePipelineActionCategory; provider: string; version: number; }; };}
export type CodePipelineCloudWatchEvent = | CodePipelineCloudWatchPipelineEvent | CodePipelineCloudWatchStageEvent | CodePipelineCloudWatchActionEvent;
export interface CloudFrontHeaders { [name: string]: Array<{ key?: string; value: string; }>;}
export type CloudFrontOrigin = | { s3: CloudFrontS3Origin; custom?: never } | { custom: CloudFrontCustomOrigin; s3?: never };
export interface CloudFrontCustomOrigin { customHeaders: CloudFrontHeaders; domainName: string; keepaliveTimeout: number; path: string; port: number; protocol: 'http' | 'https'; readTimeout: number; sslProtocols: string[];}
export interface CloudFrontS3Origin { authMethod: 'origin-access-identity' | 'none'; customHeaders: CloudFrontHeaders; domainName: string; path: string; region: string;}
export interface CloudFrontResponse { status: string; statusDescription: string; headers: CloudFrontHeaders;}
export interface CloudFrontRequest { body?: { action: 'read-only' | 'replace'; data: string; encoding: 'base64' | 'text'; readonly inputTruncated: boolean; }; readonly clientIp: string; readonly method: string; uri: string; querystring: string; headers: CloudFrontHeaders; origin?: CloudFrontOrigin;}
export interface CloudFrontEvent { config: { readonly distributionDomainName: string; readonly distributionId: string; } & ( | { readonly eventType: 'origin-request' | 'origin-response' } | { readonly eventType: 'viewer-request' | 'viewer-response'; readonly requestId: string });}
export interface CloudFrontResultResponse { status: string; statusDescription?: string; headers?: CloudFrontHeaders; bodyEncoding?: 'text' | 'base64'; body?: string;}
export interface CloudFrontResponseEvent { Records: Array<{ cf: CloudFrontEvent & { readonly request: Pick<CloudFrontRequest, Exclude<keyof CloudFrontRequest, 'body'>>; response: CloudFrontResponse; }; }>;}
export type CloudFrontRequestResult = undefined | null | CloudFrontResultResponse | CloudFrontRequest;
export interface CloudFrontRequestEvent { Records: Array<{ cf: CloudFrontEvent & { request: CloudFrontRequest; }; }>;}
export type CloudFrontResponseResult = undefined | null | CloudFrontResultResponse;
export interface KinesisStreamRecordPayload { approximateArrivalTimestamp: number; data: string; kinesisSchemaVersion: string; partitionKey: string; sequenceNumber: string;}
export interface KinesisStreamRecord { awsRegion: string; eventID: string; eventName: string; eventSource: string; eventSourceARN: string; eventVersion: string; invokeIdentityArn: string; kinesis: KinesisStreamRecordPayload;}
export interface KinesisStreamEvent { Records: KinesisStreamRecord[];}
export interface FirehoseTransformationEvent { invocationId: string; deliveryStreamArn: string; region: string; records: FirehoseTransformationEventRecord[];}
export interface FirehoseTransformationEventRecord { recordId: string; approximateArrivalTimestamp: number; data: string; kinesisRecordMetadata?: FirehoseRecordMetadata;}
export interface FirehoseRecordMetadata { shardId: string; partitionKey: string; approximateArrivalTimestamp: string; sequenceNumber: string; subsequenceNumber: string;}
export type FirehoseRecordTransformationStatus = 'Ok' | 'Dropped' | 'ProcessingFailed';
export interface FirehoseTransformationResultRecord { recordId: string; result: FirehoseRecordTransformationStatus; data: string;}
export interface FirehoseTransformationResult { records: FirehoseTransformationResultRecord[];}
export interface SQSRecord { messageId: string; receiptHandle: string; body: string; attributes: SQSRecordAttributes; messageAttributes: SQSMessageAttributes; md5OfBody: string; eventSource: string; eventSourceARN: string; awsRegion: string;}
export interface SQSEvent { Records: SQSRecord[];}
export interface SQSRecordAttributes { ApproximateReceiveCount: string; SentTimestamp: string; SenderId: string; ApproximateFirstReceiveTimestamp: string;}
export type SQSMessageAttributeDataType = 'String' | 'Number' | 'Binary' | string;
export interface SQSMessageAttribute { stringValue?: string; binaryValue?: string; stringListValues: never[]; binaryListValues: never[]; dataType: SQSMessageAttributeDataType;}
export interface SQSMessageAttributes { [name: string]: SQSMessageAttribute;}
export interface LexEvent { currentIntent: { name: string; slots: { [name: string]: string | null }; slotDetails: LexSlotDetails; confirmationStatus: 'None' | 'Confirmed' | 'Denied'; }; bot: { name: string; alias: string; version: string; }; userId: string; inputTranscript: string; invocationSource: 'DialogCodeHook' | 'FulfillmentCodeHook'; outputDialogMode: 'Text' | 'Voice'; messageVersion: '1.0'; sessionAttributes: { [key: string]: string }; requestAttributes: { [key: string]: string } | null;}
export interface LexSlotResolution { value: string;}
export interface LexSlotDetails { [name: string]: { resolutions: LexSlotResolution[]; originalValue: string; };}
export interface LexGenericAttachment { title: string; subTitle: string; imageUrl: string; attachmentLinkUrl: string; buttons: Array<{ text: string; value: string; }>;}
export interface LexDialogActionBase { type: 'Close' | 'ElicitIntent' | 'ElicitSlot' | 'ConfirmIntent'; message?: { contentType: 'PlainText' | 'SSML' | 'CustomPayload'; content: string; }; responseCard?: { version: number; contentType: 'application/vnd.amazonaws.card.generic'; genericAttachments: LexGenericAttachment[]; };}
export interface LexDialogActionClose extends LexDialogActionBase { type: 'Close'; fulfillmentState: 'Fulfilled' | 'Failed';}
export interface LexDialogActionElicitIntent extends LexDialogActionBase { type: 'ElicitIntent';}
export interface LexDialogActionElicitSlot extends LexDialogActionBase { type: 'ElicitSlot'; intentName: string; slots: { [name: string]: string | null }; slotToElicit: string;}
export interface LexDialogActionConfirmIntent extends LexDialogActionBase { type: 'ConfirmIntent'; intentName: string; slots: { [name: string]: string | null };}
export interface LexDialogActionDelegate { type: 'Delegate'; slots: { [name: string]: string | null };}
export type LexDialogAction = | LexDialogActionClose | LexDialogActionElicitIntent | LexDialogActionElicitSlot | LexDialogActionConfirmIntent | LexDialogActionDelegate;
export interface LexResult { sessionAttributes?: { [key: string]: string }; dialogAction: LexDialogAction;}
export type Handler<TEvent = any, TResult = any> = ( event: TEvent, context: Context, callback: Callback<TResult>,) => void | Promise<TResult>;
export type Callback<TResult = any> = (error?: Error | null | string, result?: TResult) => void;
export type S3Handler = Handler<S3Event, void>;
export type DynamoDBStreamHandler = Handler<DynamoDBStreamEvent, void>;
export type SNSHandler = Handler<SNSEvent, void>;
export type CognitoUserPoolTriggerHandler = Handler<CognitoUserPoolTriggerEvent>;
export type SQSHandler = Handler<SQSEvent, void>;
export type CloudFormationCustomResourceHandler = Handler<CloudFormationCustomResourceEvent, void>;
export type CloudWatchLogsHandler = Handler<CloudWatchLogsEvent, void>;
export type ScheduledHandler = Handler<ScheduledEvent, void>;
export type LexHandler = Handler<LexEvent, LexResult>;export type LexCallback = Callback<LexResult>;
export type APIGatewayProxyHandler = Handler<APIGatewayProxyEvent, APIGatewayProxyResult>;export type APIGatewayProxyCallback = Callback<APIGatewayProxyResult>;export type ProxyHandler = APIGatewayProxyHandler; export type ProxyCallback = APIGatewayProxyCallback;
export type ALBHandler = Handler<ALBEvent, ALBResult>;export type ALBCallback = Callback<ALBResult>;
export type CodePipelineHandler = Handler<CodePipelineEvent, void>;
export type CodePipelineCloudWatchHandler = Handler<CodePipelineCloudWatchEvent, void>;export type CodePipelineCloudWatchPipelineHandler = Handler<CodePipelineCloudWatchPipelineEvent, void>;export type CodePipelineCloudWatchStageHandler = Handler<CodePipelineCloudWatchStageEvent, void>;export type CodePipelineCloudWatchActionHandler = Handler<CodePipelineCloudWatchActionEvent, void>;
export type CloudFrontRequestHandler = Handler<CloudFrontRequestEvent, CloudFrontRequestResult>;export type CloudFrontRequestCallback = Callback<CloudFrontRequestResult>;
export type CloudFrontResponseHandler = Handler<CloudFrontResponseEvent, CloudFrontResponseResult>;export type CloudFrontResponseCallback = Callback<CloudFrontResponseResult>;
export type KinesisStreamHandler = Handler<KinesisStreamEvent, void>;
export type FirehoseTransformationCallback = Callback<FirehoseTransformationResult>;export type FirehoseTransformationHandler = Handler<FirehoseTransformationEvent, FirehoseTransformationResult>;
export type CustomAuthorizerHandler = Handler<CustomAuthorizerEvent, CustomAuthorizerResult>;export type CustomAuthorizerCallback = Callback<CustomAuthorizerResult>;
export type S3BatchHandler = Handler<S3BatchEvent, S3BatchResult>;export type S3BatchCallback = Callback<S3BatchResult>;
export as namespace AWSLambda;