/**
 * Copyright Amazon.com, Inc. and its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"). You
 * may not use this file except in compliance with the License. A copy of
 * the License is located at
 *
 *     http://aws.amazon.com/apache2.0/
 *
 * or in the "license" file accompanying this file. This file is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific
 * language governing permissions and limitations under the License.
 */
type Json = null | string | number | boolean | Json[] | JsonObject;
/** JSON Object type */
type JsonObject = {
    [name: string]: Json;
};
interface CognitoJwtFields {
    token_use: "access" | "id";
    "cognito:groups"?: string[];
    sub: string;
    iss: string;
    exp: number;
    iat: number;
    auth_time: number;
    jti: string;
    origin_jti: string;
}
interface CognitoIdTokenFields extends CognitoJwtFields {
    token_use: "id";
    aud: string;
    at_hash: string;
    "cognito:username": string;
    email?: string;
    email_verified?: boolean;
    phone_number?: string;
    phone_number_verified?: boolean;
    identities?: {
        userId: string;
        providerName: string;
        providerType: string;
        issuer: null;
        primary: string;
        dateCreated: string;
    }[];
    "cognito:roles"?: string[];
    "cognito:preferred_role"?: string;
}
export type CognitoIdTokenPayload = CognitoIdTokenFields & JsonObject;
interface CognitoAccessTokenFields extends CognitoJwtFields {
    token_use: "access";
    client_id: string;
    version: number;
    username: string;
    scope: string;
}
export type CognitoAccessTokenPayload = CognitoAccessTokenFields & JsonObject;
export {};
