import { NgxAmplifyConfig } from '../common/interfaces/ngx-amplify.config';
import { CognitoUser, CognitoUserSession, CognitoUserAttribute, ICognitoUserAttributeData, ISignUpResult } from 'amazon-cognito-identity-js';
import { Observable } from 'rxjs';
import { CognitoProfile } from '../common/common.resource';
import { IAuthState, IAuthUser, ICognitoCredentials, ICognitoSignUpCredentials, ICognitoProfile, IAuthUserState } from '../common/interfaces/common.interface';
export declare class AuthService {
    private config;
    private poolData;
    private session;
    private userPool;
    private unauthCreds;
    private resetting;
    private authState;
    authState$: Observable<IAuthState>;
    private authUserState;
    authUserState$: Observable<IAuthUserState>;
    cognitoUser: CognitoUser;
    private cognitoUserSub;
    cognitoUser$: Observable<CognitoUser>;
    user: IAuthUser;
    constructor(config: NgxAmplifyConfig);
    private authDetails;
    private buildCreds;
    private buildLogins;
    private handleError;
    private getCurrentUser;
    private getCognitoAttributes;
    private getCognitoUser;
    getJwtToken(): string;
    getCognitoProfile(attributes: CognitoUserAttribute[] | ICognitoUserAttributeData[]): CognitoProfile;
    private setCognitoProfile;
    updateCognitoProfile(attributes: ICognitoUserAttributeData[]): Promise<ICognitoProfile>;
    private resetCreds;
    currentAuthUser(): Promise<IAuthUser>;
    refreshOrResetCreds(): Promise<void>;
    private refreshSession;
    saveCreds(cognitoUser?: CognitoUser, session?: CognitoUserSession): Promise<IAuthUser>;
    private setCredentials;
    signIn(creds: ICognitoCredentials): Promise<IAuthUser>;
    signUp(creds: ICognitoSignUpCredentials): Promise<ISignUpResult>;
    confirmSignUp(username: string, code: string): Promise<any>;
    confirmPassword(username: string, verificationCode: string, password: string): Promise<unknown>;
    forgotPassword(username: string): Promise<unknown>;
    resendConfirmationCode(username: string): Promise<unknown>;
    signOut(): Promise<string>;
}
