import { IProfileData } from "./Browser"; import Client, { Host } from "./Client"; /** * Represents a user. Most properties are promises, to * lazily load them from the server if they're not present. * * @class User */ declare class User { #private; id: number; /** * @param {Client} client * @param {number} id The id of the user * */ constructor(client: Client, id: number, profileData?: Omit, "id">); /** * The name of the user * * @readonly * @type {Promise} * @memberof User */ get name(): Promise; /** * The about section of their chat profile * * @readonly * @type {Promise} * @memberof User */ get about(): Promise; /** * True if the user is a moderator, false otherwise * * @readonly * @type {Promise} * @memberof User */ get isModerator(): Promise; /** * The number of all time messages this user has sent * * @readonly * @type {Promise} * @memberof User */ get messageCount(): Promise; /** * All time number of rooms this user has been a part of * * @readonly * @type {Promise} * @memberof User */ get roomCount(): Promise; /** * The number of seconds since this user was last seen * * @readonly * @type {Promise} * @memberof User */ get lastSeen(): Promise; /** * The number of seconds since this user posted a message in any chat * * @readonly * @type {Promise} * @memberof User */ get lastMessage(): Promise; /** * User's current reputation * * @readonly * @type {Promise} * @memberof User */ get reputation(): Promise; /** * @summary gets this {@link User}'s parent info * @readonly */ get parent(): Promise<{ id?: number; host?: Host; site?: string; }>; /** * Used by most properties of this class to fetch their profile, * and updates their associated values. This should not be needed * to call directly. Simply await the properties * * @returns {Promise} * @memberof User# */ scrapeProfile(): Promise; } export default User;