import '@iotize/tap/service/impl/group';
import '@iotize/tap/service/impl/interface';
import { Tap } from '@iotize/tap';
import { AuthMethod, UsernamePassword } from './definitions';
import { ScramAuth } from './scram-auth';
export declare class BasicAuth implements AuthMethod<UsernamePassword, ScramAuth.SessionData> {
    private tap;
    options: {
        hashPassword?: boolean;
    };
    private get hashPassword();
    constructor(tap: Tap, options?: {
        hashPassword?: boolean;
    });
    /**
     * Tap login
     *
     */
    login(params: UsernamePassword): Promise<ScramAuth.SessionData>;
    logout(): Promise<void>;
    /**
     * Change password for the groupId (If groupId is not specified, it will be changed for the current group id)
     * @param newPassword the new password
     * @param userIdOrName default to the current group id
     * @param userPassword the current user password. if provided it will perform a login before changing password
     */
    changePassword(newPassword: string, userId: number): Promise<void>;
}
