import { User, UserUpdateModel } from "../../model/users/SDKUser";
import { UserProfileUpdateModel } from "../../model/users/SDKUserProfile";
import { DataCore } from "../data/SDKDataCore";
export declare class AreaMe {
    /** Internal: Engine */
    private dataCore;
    constructor(dataCore: DataCore);
    /** Fetches current user profile based on the API key provided to Supernova instance. */
    me(): Promise<User>;
    /** Invalidates all session keys for the current user, effectively logging out from all decises. */
    logout(): Promise<void>;
    /** Updates the current user. */
    updateMe(userId: string, payload: UserUpdateModel): Promise<User>;
    /** Updates the current user based on the API key provided to Supernova instance. */
    updateProfile(userId: string, profile: UserProfileUpdateModel): Promise<void>;
    /** Updates the avatar of the current user */
    updateAvatar(userId: string, avatar: File): Promise<void>;
    /** Deletes the current user user based on the API key provided to Supernova instance. Also removes all owned workspaces and updates memberships where user belongs. */
    deleteMe(userId: string): Promise<void>;
    /** Checks whether user can be deleted. There are certain restrictions, like users who don't have all bills settled in their associated workspaces can't be deleted, for example */
    canDeleteMe(userId: string): Promise<boolean>;
    /** Updates the avatar of the current user */
    deleteAvatar(userId: string): Promise<void>;
}
