import type * as P from "@principia/prelude";
import type { URI, V } from "./model";
/**
* ```haskell
* mapWithIndex_ :: (FunctorWithIndex f, Index k) => (f a, ((k, a) -> b)) -> f b
* ```
*
* Map an `Array` passing the index to the iterating function
*
* @category FunctorWithIndex
* @since 1.0.0
*/
export declare const mapWithIndex_: (fa: readonly A[], f: (i: number, a: A) => B) => readonly B[];
/**
* ```haskell
* mapWithIndex :: (FunctorWithIndex f, Index k) => ((k, a) -> b) -> f a -> f b
* ```
*
* Map an `Array` passing the index to the iterating function
*
* @category FunctorWithIndex
* @since 1.0.0
*/
export declare const mapWithIndex: (f: (i: number, a: A) => B) => (fa: readonly A[]) => readonly B[];
/**
* ```haskell
* map_ :: Functor f => (f a, (a -> b)) -> f b
* ```
*
* Map over an `Array` passing the values to the iterating function
*
* @category Functor
* @since 1.0.0
*/
export declare const map_: (fa: readonly A[], f: (a: A) => B) => readonly B[];
/**
* ```haskell
* map :: Functor f => (a -> b) -> f a -> f b
* ```
*
* Map over an `Array` passing the values to the iterating function
*
* @category Functor
* @since 1.0.0
*/
export declare const map: (f: (a: A) => B) => (fa: readonly A[]) => readonly B[];
export declare const Functor: P.Functor<[URI], V>;
export declare const FunctorWithIndex: P.FunctorWithIndex<[URI], V>;
//# sourceMappingURL=functor.d.ts.map