import Q from "q";
/**
 * Reduce an array to a promise
 *
 * @param {Array|List} arr
 * @param {Function(value, element, index)} iter
 * @param {Array|List} base
 * @return {Promise<Mixed>}
 */
declare function reduce(arr: any, iter: any, base: any): any;
/**
 * Iterate over an array using an async iter
 *
 * @param {Array|List} arr
 * @param {Function(value, element, index)}
 * @return {Promise}
 */
declare function forEach(arr: any, iter: any): any;
/**
 * Transform an array
 *
 * @param {Array|List} arr
 * @param {Function(value, element, index)}
 * @return {Promise}
 */
declare function serie(arr: any, iter: any, base: any): any;
/**
 * Iter over an array and return first result (not null)
 *
 * @param {Array|List} arr
 * @param {Function(element, index)}
 * @return {Promise<Mixed>}
 */
declare function some(arr: any, iter: any): any;
/**
 * Map an array or map
 *
 * @param {Array|List|Map|OrderedMap} arr
 * @param {Function(element, key)}
 * @return {Promise<List|Map|OrderedMap>}
 */
declare function map(arr: any, iter: any): any;
/**
 * Wrap a function in a promise
 *
 * @param {Function} func
 * @return {Funciton}
 */
declare function wrap(func: Function): () => any;
export default Q;
export { forEach, reduce, map, serie, some, wrap };
//# sourceMappingURL=promise.d.ts.map