import { IImgInfo } from "picgo";
import { HttpsProxyAgent, HttpProxyAgent } from "hpagent";
import { IS3UserConfig } from "./config";
declare class Generateor {
    readonly date: Date;
    constructor();
    protected year(): string;
    protected month(): string;
    protected day(): string;
    protected hour(): string;
    protected minute(): string;
    protected second(): string;
    protected millisecond(): string;
    protected timestamp(): string;
    protected timestampMS(): string;
    format(s?: string): string;
}
export declare class FileNameGenerator extends Generateor {
    readonly info: IImgInfo;
    constructor(info: IImgInfo);
    fullName(): string;
    fileName(): string;
    extName(): string;
    md5(): string;
    md5B64(): string;
    md5B64Short(): string;
    sha1(): string;
    sha256(): string;
    imgBuffer(): string | Buffer;
    format(s?: string): string;
}
export declare class OutputURLGenerator extends Generateor {
    readonly _config: IS3UserConfig;
    readonly _protocol: string;
    readonly _host: string;
    readonly _port: string;
    readonly _path: string;
    readonly _query: string;
    readonly _hash: string;
    readonly _info: IImgInfo;
    constructor(config: IS3UserConfig, info: IImgInfo);
    protocol(): string;
    host(): string;
    port(): string;
    path(): string;
    fileName(): string;
    extName(): string;
    dir(): string;
    originalURL(): string;
    query(): string;
    hash(): string;
    bucket(): string;
    legacyFormat(): string;
    format(): string;
}
export declare function extractInfo(info: IImgInfo): Promise<{
    body?: Buffer;
    contentType?: string;
    contentEncoding?: string;
}>;
export declare function getProxyAgent(proxy: string | undefined, sslEnabled: boolean, rejectUnauthorized: boolean): HttpProxyAgent | HttpsProxyAgent | undefined;
export {};
