import Credentials from './Credentials';
import RefreshingCredentials from './RefreshingCredentials';
/**
 * An interface defining options required for initiating Platform MFA
 */
export interface MfaRequest {
    /**
     * Identifier of the Signiant account containing Media Shuttle service.
     */
    accountId: string;
}
/**
 * An interface defining options required for Platform MFA redemption
 */
export interface RedeemMfaRequest extends MfaRequest {
    /**
     * MFA verification code to be redeemed or verified
     */
    verificationCode: string;
}
/**
 * Constructor options for the LoginCredentials class.
 */
export interface LoginCredentialsOptions {
    /**
     * The username of the user logging in.
     * @example example-user@signiant.com
     */
    username: string;
    /**
     * The password associated with the username:
     *
     * @example sample-pass
     */
    password: string;
}
/**
 * This credentials class allow the user to use the SDK by providing
 * username and password as authentication parameters.
 */
declare class LoginCredentials implements Credentials {
    private _credentials;
    private _baseUrl;
    private readonly _username;
    private readonly _password;
    /**
     * Constructor of the class
     * @param {object} credentials including the login details
     * @param {string} credentials.username user email of a user that belongs to a Signiant Account
     * @param {string} credentials.password user password
     */
    constructor({ username, password }: LoginCredentialsOptions);
    /**
     * Requests the authentication token, the first time a login request is done,
     * after that if a valid refresh token is available we use it to get a new token.
     * @returns {string} valid token to make requests to the Platform API
     */
    getAuthToken(): Promise<string>;
    /**
     * Should make a call to the Platform API to login the user.
     * @returns {RefreshingCredentials}
     */
    login(): Promise<RefreshingCredentials>;
    /**
     * @hidden
     * Sets the base url to be used when requesting tokens.
     * @param {string} url base url of the Platform API
     */
    set baseUrl(url: string | undefined);
    /**
     * Requests an MFA verification code the user can redeem as part of Platform MFA verification.
     * @param {MfaRequest} requestObject - Request Object | Include the required parameters in order to initiate MFA verification
     * @param {string} requestObject.accountId - **accountId**: Identifier of the Signiant account requiring MFA verification
     */
    initiateMfa({ accountId }: MfaRequest): Promise<void>;
    /**
     * Redeems an MFA verification code as part of Platform MFA verification to get new MFA verified token
     * @param {RedeemMfaRequest} requestObject - Request Object | Include the required parameters in order to redeem an MFA token
     * @param {string} requestObject.accountId - **accountId**: Identifier of the Signiant account requiring MFA verification
     * @param {string} requestObject.verificationCode - **verificationCode**: verification code to redeem as part of Platform MFA verification
     * @returns {string} valid token to make requests to the Platform API for MFA protected account resources
     */
    redeemMfa({ accountId, verificationCode }: RedeemMfaRequest): Promise<string>;
    logout(): Promise<any>;
}
export default LoginCredentials;
//# sourceMappingURL=LoginCredentials.d.ts.map