/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import http = require("http");
import request = require("request");
import { Configuration } from "./configuration";
import { Encryptor } from "../api";
/**
 * Get boundary for IncomingHttpHeaders
 */
export declare function getBoundary(headers: http.IncomingHttpHeaders): string;
/**
 * Get boundary for headers dictionary
 */
export declare function getPartBoundary(headers: {
    [key: string]: string;
}): string;
/**
 * Invoke api method
 * @param requestOptions request parameters
 * @param confguration api configuration
 * @param notApplyAuthToRequest if setted to true, auth is not applied to request
 */
export declare function invokeApiMethod(requestOptions: request.OptionsWithUri, confguration: Configuration, notApplyAuthToRequest?: boolean): Promise<request.RequestResponse>;
/**
 * Add parameter to query
 * @param url url
 * @param queryParameters queryParameters
 * @param parameterName parameterName
 * @param parameterValue parameterValue
 * @param data encryptor
 */
export declare function addQueryParameterToUrl(url: any, queryParameters: any, parameterName: any, parameterValue: any, encryptor: Encryptor): Promise<string>;
/**
 * Parse multipart response body for given boundary
 */
export declare function parseMultipart(body: Buffer, boundary: string): any;
/**
 * Parse multipart response body for batch part
 */
export declare function parseBatchParts(multipartBodyBuffer: Buffer, boundary: string, withStatus: boolean): any;
/**
 * Get multipart part by name
 */
export declare function findMultipartElement(parts: any[], name: string): any;
/**
 * Get files collection from Response
 */
export declare function parseFilesCollection(response: Buffer, headers: http.IncomingHttpHeaders): Map<string, Buffer>;
