import type { BalenaRequestOptions, BalenaRequestResponse } from './request'; import type { getRequestAsync } from './utils'; import type * as Stream from 'stream'; export interface BalenaRequestStreamProgressEvent { total: number; received: number; eta: number; percentage: number; } export interface BalenaRequestPassThroughStream extends Stream.PassThrough { response: BalenaRequestResponse; mime?: string | null; } /** * This callback is displayed as a global member. * @callback estimateStreamCallback * @param {BalenaRequestOptions} options * * @returns {Promise} request stream */ /** * @summary Make a node request with progress * @function * @protected * * @returns {estimateStreamCallback} request stream callback * * @example * progress.estimate(options).then (stream) -> * stream.pipe(fs.createWriteStream('foo/bar')) * stream.on 'progress', (state) -> * console.log(state) */ export declare function estimate(requestAsync: ReturnType): (options: BalenaRequestOptions) => Promise;