import { Context, Dict } from 'koishi';
import { ImageData } from './types';
export declare function project(object: {}, mapping: {}): {};
export interface Size {
    width: number;
    height: number;
}
export declare function getImageSize(buffer: ArrayBuffer): Size;
export declare function download(ctx: Context, url: string, headers?: {}): Promise<ImageData>;
export declare function calcAccessKey(email: string, password: string): Promise<string>;
export declare function calcEncryptionKey(email: string, password: string): Promise<string>;
export declare class NetworkError extends Error {
    params: {};
    constructor(message: string, params?: {});
    static catch: (mapping: Dict<string>) => (e: any) => never;
}
export declare function login(ctx: Context): Promise<string>;
export declare function closestMultiple(num: number, mult?: number): number;
export interface Size {
    width: number;
    height: number;
    /** Indicate whether this resolution is pre-defined or customized */
    custom?: boolean;
}
export declare function resizeInput(size: Size): Size;
export declare function forceDataPrefix(url: string, mime?: string): string;
