import { Config } from "..";
import { Logger, HTTP } from "koishi";
import { JMClientAbstract } from "../abstract/JMClientAbstract";
import { IJMSearchResult, IJMUser } from "../types/JMClient";
import { JMHtmlAlbum } from "./JMHtmlAlbum";
import { JMHtmlPhoto } from "./JMHtmlPhoto";
export declare class JMHtmlClient extends JMClientAbstract {
    /**
     * koishi 配置项
     */
    private config;
    /**
     * koishi 日志
     */
    private logger;
    /**
     * koishi http
     */
    private http;
    constructor(root: string, http: HTTP, config: Config, logger: Logger);
    login(username: string, password: string): Promise<IJMUser>;
    search(keyword: string): Promise<IJMSearchResult>;
    getAlbumById(id: string): Promise<JMHtmlAlbum>;
    getPhotoById(id: string): Promise<JMHtmlPhoto>;
    downloadByAlbum(album: JMHtmlAlbum): Promise<void>;
    downloadByPhoto(photo: JMHtmlPhoto, type?: "photo" | "album", albumId?: string, single?: boolean): Promise<void>;
    decodeByPhoto(photo: JMHtmlPhoto, type?: "photo" | "album", albumId?: string, single?: boolean): Promise<void>;
    albumToPdf(album: JMHtmlAlbum, password?: string): Promise<string | string[]>;
    albumToZip(album: JMHtmlAlbum, password?: string, level?: number): Promise<string>;
    photoToPdf(photo: JMHtmlPhoto, pdfName: string, type: "photo" | "album", albumId: string, single: boolean, password?: string): Promise<string>;
    photoToZip(photo: JMHtmlPhoto, zipName: string, password?: string, level?: number): Promise<string>;
}
