/** @packageDocumentation
 * @module RpcInterface
 */
import { BackendBuffer, BackendReadable } from "../../internal/BackendTypes";
import { RpcSerializedValue } from "../core/RpcMarshaling";
import { HttpServerRequest } from "../web/WebAppRpcProtocol";
/** @internal */
export interface FormDataCommon {
    append(name: string, value: string | Blob | BackendBuffer, fileName?: string): void;
}
/** @internal */
export interface ReadableFormData extends BackendReadable {
    getHeaders(): {
        [key: string]: any;
    };
}
/** Support for transporting RPC values using the HTTP multipart content type.
 * @internal
 */
export declare class RpcMultipart {
    /** Creates a multipart form object for an RPC value. */
    static createForm(value: RpcSerializedValue): FormData;
    /** Creates a multipart stream for an RPC value. */
    static createStream(value: RpcSerializedValue): ReadableFormData;
    /** Obtains the RPC value from a multipart HTTP request. */
    static parseRequest(req: HttpServerRequest): Promise<RpcSerializedValue>;
    /** @internal */
    static writeValueToForm(form: FormDataCommon, value: RpcSerializedValue): void;
    /** @internal */
    static platform: {
        createStream(_value: RpcSerializedValue): ReadableFormData;
        parseRequest(_req: HttpServerRequest): Promise<RpcSerializedValue>;
        appendToForm(i: number, form: FormDataCommon, value: RpcSerializedValue): void;
    };
}
//# sourceMappingURL=RpcMultipart.d.ts.map