import { DefaultResponse, HomePage, CoinsResponse, HentaiVideo, Downloads, LoggingConfig, MyChannelResponse, ChannelResponse, Comments, CommentUser, PremiumResponse } from '../types';
/**
 * Hanime client. Based on mobile and web API.
 */
export declare class HanimeClient {
    /**
     * Requests client
     */
    private reqClient;
    /**
     * Logging client
     */
    private loggingClient;
    /**
     * User session token
     */
    sessionToken: string | null;
    /**
     * Information about the app and currently logged in user
     */
    private info;
    /**
     * Base URL for the requests
     */
    private readonly BASE_URLS;
    /**
     * Create a new instance of the AppClient
     * @param sessionToken User session token
     * @returns AppClient instance
     */
    constructor(sessionToken?: string, loggingConfig?: LoggingConfig);
    /**
     * Login to the APP
     * @param login User login
     * @param password User password
     * @returns Login response.
     */
    login(login: string, password: string): Promise<DefaultResponse>;
    /**
     * Get base info about current user
     * @returns User info
     */
    getInfo(): Promise<DefaultResponse>;
    /**
     * Get the home page
     * @returns Home page response
     */
    getHomePage(): Promise<HomePage>;
    /**
     * Claim coins. Raises 401 if cooldown is not over.
     * @returns Coins response
     */
    claimCoins(): Promise<CoinsResponse>;
    /**
     * Get hentai downloads
     * @param slug Slug of the hentai
     * @returns Downloads response
     */
    getHentaiDownloads(slug: string): Promise<Downloads>;
    /**
     * Get hentai video
     * @param id ID of the hentai
     * @returns Hentai video
     */
    getHentaiVideo(id: number): Promise<HentaiVideo>;
    /**
     * Get current account channel
     * @returns Channel response
     */
    getMyChannel(): Promise<MyChannelResponse>;
    /**
     * Get other user channel
     * @param slug Slug of the user
     * @returns Channel response
     */
    getChannel(slug: string): Promise<ChannelResponse>;
    /**
     * Get hentai comments
     * @param hentaiId ID of the hentai
     * @param offset Offset
     * @param count Comments count
     * @param order Order
     * @returns Comments
     */
    getComments(hentaiId: number, offset?: number, count?: number, sortBy?: 'createdAt' | 'upvotes'): Promise<Comments>;
    /**
     * Get comments users
     * @param userIds User IDs
     * @returns Comment users
     */
    getCommentsUsers(userIds: number[]): Promise<CommentUser[]>;
    /**
     * Claim Premium
     * @returns Premium response
     */
    claimPremium(): Promise<PremiumResponse>;
}
//# sourceMappingURL=client.d.ts.map