import { APIUser, AvatarDecoration, Channel, Client, ContentOptions, Message } from "../index";
import { Base } from "../internal/Base";
/** User object */
export declare class User extends Base {
    #private;
    readonly id: string;
    readonly bot: boolean;
    readonly system: boolean;
    username: string;
    discriminator: string | null;
    avatar: string;
    avatarDecoration: AvatarDecoration | null;
    constructor(data: APIUser, client: Client);
    toString(): string;
    /**
     * Get the creation date of the user
     *
     * @returns The date when the user account was created
     */
    get createdAt(): Date;
    /**
     * Get the display name of the user
     *
     * @returns The display name of the user if it exists, otherwise returns the username and discriminator
     */
    get displayName(): string;
    /**
     * Get the avatar URL of the user
     *
     * @param options Avatar URL options
     * @returns The url of the user's avatar
     */
    getAvatarURL(options?: {
        size?: number;
        animated?: boolean;
    }): string;
    /**
     * Get the DM channel of the user
     *
     * @returns A channel object
     */
    getDmChannel(): Promise<Channel>;
    /**
     * Send the user a message
     *
     * @param content The content of the message
     * @returns A message object
     */
    send(content: string | ContentOptions): Promise<Message>;
    /**
     * Update the user
     *
     * @param data The new data of the user
     */
    _patch(data: APIUser): void;
}
