import { ICookieStorageData, ICognitoStorage, CognitoUserAttribute } from "amazon-cognito-identity-js";
/**
* Parameters for user sign up
*/
export interface SignUpParams {
    username: string;
    password: string;
    attributes?: object;
    validationData?: CognitoUserAttribute[];
}
export interface AuthCache {
    setItem(): any;
    getItem(): any;
    removeItem(): any;
}
/**
 * Auth instance options
 */
export interface AuthOptions {
    userPoolId: string;
    userPoolWebClientId: string;
    identityPoolId?: string;
    region?: string;
    mandatorySignIn?: boolean;
    cookieStorage?: ICookieStorageData;
    oauth?: OAuth;
    refreshHandlers?: object;
    storage?: ICognitoStorage;
    authenticationFlowType?: string;
    identityPoolRegion?: string;
}
/**
 * Details for multi-factor authentication
 */
export interface MfaRequiredDetails {
    challengeName: any;
    challengeParameters: any;
}
/**
 * interface for federatedResponse
 */
export interface FederatedResponse {
    token: string;
    identity_id?: string;
    expires_at: number;
}
/**
 * interface for federatedUser
 */
export interface FederatedUser {
    name: string;
    email?: string;
}
export interface awsCognitoOAuthOpts {
    domain: string;
    scope: Array<string>;
    redirectSignIn: string;
    redirectSignOut: string;
    responseType: string;
    options?: object;
}
export interface OAuth {
    awsCognito?: awsCognitoOAuthOpts;
    auth0?: any;
}
export interface ConfirmSignUpOptions {
    forceAliasCreation?: boolean;
}
export interface SignOutOpts {
    global?: boolean;
}
export interface CurrentUserOpts {
    bypassCache: boolean;
}
export declare type UsernamePasswordOpts = {
    username: string;
    password: string;
    validationData?: {
        [key: string]: any;
    };
};
export declare type SignInOpts = UsernamePasswordOpts;
export declare function isUsernamePasswordOpts(obj: any): obj is UsernamePasswordOpts;
