import { ExecutionContext } from '@nestjs/common';
export interface JwtClaims {
    sub: string;
    iss: string;
    username?: string;
    'cognito:groups'?: string[];
    'cognito:username': string;
    origin_jti?: string;
    client_id?: string;
    scope?: string;
    aud: string;
    event_id: string;
    token_use: string;
    auth_time: number;
    name: string;
    'custom:tenant'?: string;
    'custom:roles'?: string;
    exp: number;
    email: string;
    email_verified?: boolean;
    iat: number;
    jti: string;
}
export interface IInvokeEvent {
    version?: string;
    routeKey?: string;
    rawPath?: string;
    rawQueryString?: string;
    headers?: Record<string, string>;
    requestContext?: {
        accountId?: string;
        apiId?: string;
        domainName?: string;
        domainPrefix?: string;
        http?: {
            method?: string;
            path?: string;
            protocol?: string;
            sourceIp?: string;
            userAgent?: string;
        };
        requestId?: string;
        stage?: string;
        time?: string;
        timeEpoch?: number;
        authorizer?: {
            jwt?: {
                claims?: JwtClaims;
                scopes?: string[];
            };
        };
    };
    isBase64Encoded?: boolean;
}
export interface IInvokeContext {
    functionName?: string;
    functionVersion?: string;
    invokedFunctionArn?: string;
    memoryLimitInMB?: string;
    awsRequestId?: string;
    logGroupName?: string;
    logStreamName?: string;
    identity?: {
        cognitoIdentityId?: string;
        cognitoIdentityPoolId?: string;
    };
}
export interface IInvoke {
    event?: IInvokeEvent;
    context?: IInvokeContext;
}
export declare function extractInvokeContext(ctx?: ExecutionContext): IInvoke;
export declare function getAuthorizerClaims(ctx: IInvoke): JwtClaims;
