import AccountManager from "../account"; export type UserInfos = { id: number; handle: string; biography: string; developer: boolean; avatar: string; admin: boolean; official: boolean; created: string; friendRequestsEnabled: boolean; }; export type FullUserInfos = UserInfos & { name: string; email: string; balance: number; twoFactorEnabled: boolean; lastLogin: string; }; export declare function convertRawToUser(accountManager: AccountManager, raw: S): S extends UserInfos[] ? User[] : User; export declare function convertRawToFullUser(accountManager: AccountManager, raw: S): S extends FullUserInfos[] ? FullUser[] : FullUser; declare class BaseUser { protected accountManager: AccountManager; constructor(accountManager: AccountManager, infos: UserInfos); /** * The Internal Id of the User * @since 0.0.15 */ id: number; /** * The @ Handle of the User * @since 0.0.26 */ handle: string; /** * The Avatar URL of the User, always a 512x512 webp file * @since 0.0.32 */ avatarURL: string; /** * The Biography of the User * @since 0.0.15 */ biography: string; /** * Whether the User is a Developer * @since 0.0.15 */ developer: boolean; /** * Whether the User is "Official" * @since 0.2.8 */ official: boolean; /** * Whether the User is an Administrator * @since 0.0.15 */ admin: boolean; /** * Whether the User has recieving friend requests enabled * @since 0.0.18 */ friendRequestsEnabled: boolean; /** * The Date when the User was created * @since 0.0.15 */ created: Date; } export default class User extends BaseUser { /** * Friend this User * @since 0.0.15 */ friend(): import("../..").Response; /** * Unfriend this User * @since 0.0.15 */ unfriend(): import("../..").Response; } export declare class FullUser extends BaseUser { constructor(accountManager: AccountManager, infos: FullUserInfos); /** * The Name of the User * @since 0.0.15 */ name: string; /** * The Email of the User * @since 0.0.15 */ email: string; /** * The Balance of the User * @since 0.0.15 */ balance: number; /** * Whether the User has Two Factor Authentication enabled * @since 0.0.15 */ twoFactorEnabled: boolean; /** * The Date when the User last logged in * @since 0.0.15 */ lastLogin: Date; /** * Delete this User * @since 0.0.15 */ delete(password: string, code?: string): import("../..").Response; } export {};