import { APIClientUser, APIUser, APIUserSummary, UserType } from 'guilded-api-typings';
import { Base } from './Base';
import { Client } from './Client';
/**
 * Represents a user on Guilded.
 * @example new User(client, rawUser);
 */
export declare class User extends Base {
    readonly raw: APIUser | APIUserSummary;
    /** The type of the user. */
    readonly type?: UserType;
    /** The name of the user. */
    readonly name: string;
    /** The avatar of the user. */
    readonly avatar?: string;
    /** The banner of the user. */
    readonly banner?: string;
    /** The date the user was created. */
    readonly createdAt?: Date;
    /**
     * @param client The client the user belongs to.
     * @param raw The raw data of the user.
     * @param cache Whether to cache the user.
     */
    constructor(client: Client, raw: APIUser | APIUserSummary, cache?: boolean);
    /** Whether the user is cached. */
    get isCached(): boolean;
    /** The timestamp the user was created. */
    get createdTimestamp(): number | undefined;
    /** Whether the user is a bot. */
    get isBot(): boolean;
    /** Whether the user is a human. */
    get isUser(): boolean;
}
/**
 * Represents a client user.
 * @example new ClientUser(client, rawUser);
 */
export declare class ClientUser extends User {
    readonly raw: APIClientUser;
    /** The bot ID of the client user. */
    readonly botId: string;
    /** The ID of the user that created the client user. */
    readonly createdBy: string;
    /**
     * @param client The client the user belongs to.
     * @param raw The raw data of the client user.
     * @param cache Whether to cache the client user.
     */
    constructor(client: Client, raw: APIClientUser, cache?: boolean);
}
export { UserType };
//# sourceMappingURL=User.d.ts.map