/// <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>;
/**
 * Call job result endpoint.
 * @param configuration api configuration
 * @param jobId job id
 */
export declare function callJobResult(configuration: Configuration, jobId: string): Promise<any[]>;
/**
 * Deserialize embedded HTTP response part.
 * @param request request model
 * @param part multipart part with embedded HTTP response
 */
export declare function deserializeHttpResponsePart<T>(request: {
    createResponse(_response: Buffer, _headers: http.IncomingHttpHeaders): any;
}, part: any): T;
/**
 * Parse embedded HTTP response part.
 * @param responseBody embedded HTTP response bytes
 */
export declare function parseHttpResponsePart(responseBody: Buffer): any;
