/**
 * # User
 *
 * #### For more info visit <a href="https://jikan.docs.apiary.io/#reference/0/user" target="_blank">https://jikan.docs.apiary.io</a>
 *
 * ### Create User Object
 * ```ts
 * let user = Jikan.user("username");
 * ```
 *
 * ### Get User Profile
 * ```ts
 * user.profile();
 * ```
 *
 * ### Get User History
 * ```ts
 * user.history().all();
 * //            .anime()
 * //            .manga()
 * ```
 *
 * ### Get User Friends
 * ```ts
 * user.friends(page?);
 * ```
 *
 * ### Get User List
 * All posible params [here](https://jikan.docs.apiary.io/#reference/0/user)
 * ```ts
 * let params = {
 *    search: "q",
 *    sort: "order_by"
 * };
 *
 * let animelist = user.animelist(page?);
 * animelist.all(params);
 * animelist.watching(params);
 * animelist.onhold(params);
 * animelist.dropped(params);
 * animelist.plantowatch(params);
 *
 * let mangalist = user.mangalist(page?);
 * mangalist.all(params);
 * mangalist.reading(params);
 * mangalist.onhold(params);
 * mangalist.dropped(params);
 * mangalist.plantoread(params);
 * ```
 */
export declare class User {
    /** @ignore */
    private baseUrl;
    constructor(username: string);
    profile(): Promise<any>;
    history(): UserHistory;
    friends(p?: number): Promise<any>;
    animelist(p?: number): UserAnimelist;
    mangalist(p?: number): UserMangalist;
}
export declare class UserHistory {
    private baseUrl;
    constructor(baseUrl: string);
    all(): Promise<any>;
    anime(): Promise<any>;
    manga(): Promise<any>;
}
export declare class UserAnimelist {
    private baseUrl;
    private page;
    constructor(baseUrl: string, p?: number);
    private getList;
    all(qparams?: Object): Promise<any>;
    watching(qparams?: Object): Promise<any>;
    onhold(qparams?: Object): Promise<any>;
    dropped(qparams?: Object): Promise<any>;
    plantowatch(qparams?: Object): Promise<any>;
}
export declare class UserMangalist {
    private baseUrl;
    private page;
    constructor(baseUrl: string, p?: number);
    private getList;
    all(qparams?: Object): Promise<any>;
    reading(qparams?: Object): Promise<any>;
    onhold(qparams?: Object): Promise<any>;
    dropped(qparams?: Object): Promise<any>;
    plantoread(qparams?: Object): Promise<any>;
}
export declare function user(username: string): User;
