import { PicgoPostResult } from './models/PicgoPostResult';
import { ParsedImage } from './models/ParsedImage';
import { ImageItem } from './models/ImageItem';
import { SiyuanConfig, SiyuanKernelApi } from 'zhi-siyuan-api';
import { IImgInfo, IPicGo } from 'universal-picgo';

/**
 * Picgo与文章交互的通用方法
 */
declare class SiyuanPicgoPostApi {
    private readonly logger;
    private readonly imageParser;
    readonly siyuanApi: SiyuanKernelApi;
    private readonly siyuanConfig;
    private readonly isSiyuanOrSiyuanNewWin;
    private readonly picgoApi;
    cfgUpdating: boolean;
    constructor(siyuanConfig: SiyuanConfig, isDev?: boolean);
    /**
     * 内置 PicGo 上下文
     */
    ctx(): IPicGo;
    /**
     * 上传图片到PicGO，此方法不会修改元数据
     *
     * @param input 路径数组，可为空，为空上传剪贴板
     */
    originalUpload(input?: any[]): Promise<IImgInfo[] | Error>;
    /**
     * 将字符串数组格式的图片信息转换成图片对象数组
     *
     * @param attrs 文章属性
     * @param retImgs  字符串数组格式的图片信息
     * @param imageBaseUrl - 本地图片前缀，一般是思源的地址
     */
    doConvertImagesToImagesItemArray(attrs: any, retImgs: ParsedImage[], imageBaseUrl?: string): Promise<ImageItem[]>;
    /**
     * 上传当前文章图片到图床（单篇文档所有图片全部批量上传，提供给外部调用，例如：发布工具）
     *
     * @param pageId 文章ID
     * @param attrs 文章属性
     * @param mdContent 文章的Markdown文本
     */
    uploadPostImagesToBed(pageId: string, attrs: any, mdContent: string): Promise<PicgoPostResult>;
    /**
     * 上传单张图片到图床（当前图片单个上传，提供给外部调用）
     *
     * 注意：所有的图片上传都会走这个
     *
     * @param pageId 文章ID
     * @param attrs 文章属性
     * @param imageItem 图片信息
     * @param forceUpload 强制上传
     * @param ignoreReplaceLink 忽略替换链接
     */
    uploadSingleImageToBed(pageId: string, attrs: any, imageItem: ImageItem, forceUpload?: boolean, ignoreReplaceLink?: boolean): Promise<void>;
    private updateConfig;
    private moveFile;
    private copyFolder;
}
export { SiyuanPicgoPostApi };
