/// <reference types="node" />
/// <reference types="node" />
import { Readable } from "stream";
declare class PartFile extends Readable {
    size: number;
}
type fieldMeta = {
    name: string;
    mimeType?: string;
    encoding?: string;
};
type fileMeta = fieldMeta & {
    filename: string;
};
type opts = {
    boundary?: string;
    autoDestroy?: boolean;
    limits?: {
        fields?: number;
        fieldSize?: number;
        files?: number;
        fileSize?: number;
        partHeaders?: number;
        partHeaderSize?: number;
        totalSize?: number;
    };
    onField?: (data: Buffer, meta: fieldMeta, cb: (err: null | Error, data?: any) => void) => void | Promise<any>;
    onFile?: (file: PartFile, meta: fileMeta, cb: (err: null | Error, data?: any) => void) => void | Promise<any>;
    resultFormat?: "array" | "common";
};
type arrayResult = {
    [key: string]: any[];
};
type commonResult = {
    [key: string]: any;
};
declare function multipart(rs: Readable, opts?: opts & {
    resultFormat?: "array";
}): Promise<arrayResult>;
declare function multipart(rs: Readable, opts?: opts & {
    resultFormat?: "common";
}): Promise<commonResult>;
export = multipart;
