import * as jwtValidator from './jwt-validator'; import * as AWSLambda from 'aws-lambda'; export declare type PolicyBuilderFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => AWSLambda.PolicyDocument | Promise; export declare type ContextBuilderFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => AWSLambda.AuthResponseContext | Promise | void; export declare type AuthChecksFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => void | Promise; export declare type PrincipalId = string; export declare type JwtPrincipalIdSelectorFunction = (event: AWSLambda.CustomAuthorizerEvent, decodedToken?: Jwt) => PrincipalId | Promise; export interface AuthorizerConfig { policyBuilder?: PolicyBuilderFunction; contextBuilder?: ContextBuilderFunction; authChecks?: AuthChecksFunction; jwtPrincipalIdSelector?: JwtPrincipalIdSelectorFunction; } export declare type Jwt = jwtValidator.Jwt; export declare class ApiGatewayAuthorizer { private policyBuilder; private contextBuilder; private authChecks; private basicAuthenticationEnabled; private jwtAuthenticationEnabled; private principalIdSelectorFunction; constructor(authorizerConfig?: AuthorizerConfig); private assertSourceIp; private authorize; private deny; private log; private determineAuthorization; handler(event: AWSLambda.CustomAuthorizerEvent, _context: AWSLambda.Context, callback: AWSLambda.Callback): Promise; }