import { User } from '../../models/user';
export declare abstract class IUserManager {
    abstract get(userId: string): Promise<User>;
    abstract getUsers(queryParameter: string, queryValue: string): Promise<User[]>;
    abstract getUserId(username: string): Promise<string>;
    protected abstract getRoles(userId: string): Promise<never>;
    abstract create(email: string, username: string, enabled: boolean, firstName: string, lastName: string, password: string, isTemporaryPassword: boolean, verifyEmail: boolean, attributes: string, clientId?: string, redirectURL?: string): Promise<string>;
    abstract modify(userId: string, user: User, isReplaceOperation: boolean): Promise<User>;
    protected abstract modifyRoles(userID: string, realmRoles?: string[], clientRoles?: Map<string, string[]>): Promise<void>;
    protected abstract trimUserInfo(user: User): User;
    protected abstract fuseUsers(a: User, b: User): User;
    abstract resetPassword(userId: string, newPassword: string, isTemporary: boolean): Promise<void>;
    abstract forgotPassword(userId: string, clientId?: string, redirectURL?: string): Promise<void>;
    abstract delete(userId: string): Promise<void>;
}
