import { Eval, Kind } from '@fp4ts/core'; import { Monoid } from '@fp4ts/cats-kernel'; import { Foldable } from './foldable'; import { MonoidK } from './monoid-k'; import { ArrayF } from './instances/array'; /** * @category Type Class */ export interface FoldableWithIndex extends Foldable { foldMapWithIndex(M: Monoid): (f: (a: A, i: I) => M) => (fa: Kind) => M; foldMapWithIndex_(M: Monoid): (fa: Kind, f: (a: A, i: I) => M) => M; foldMapLeftWithIndex(M: Monoid): (f: (a: A, i: I) => M) => (fa: Kind) => M; foldMapLeftWithIndex_(M: Monoid): (fa: Kind, f: (a: A, i: I) => M) => M; foldMapKWithIndex(G: MonoidK): (f: (a: A, i: I) => Kind) => (fa: Kind) => Kind; foldMapKWithIndex_(G: MonoidK): (fa: Kind, f: (a: A, i: I) => Kind) => Kind; foldLeftWithIndex(z: B, f: (b: B, a: A, i: I) => B): (fa: Kind) => B; foldLeftWithIndex_(fa: Kind, z: B, f: (b: B, a: A, i: I) => B): B; foldRightWithIndex(ez: Eval, f: (a: A, eb: Eval, i: I) => Eval): (fa: Kind) => Eval; foldRightWithIndex_(fa: Kind, ez: Eval, f: (a: A, eb: Eval, i: I) => Eval): Eval; } export type FoldableWithIndexRequirements = (Pick, 'foldMapKWithIndex_'> | Pick, 'foldRightWithIndex_'>) & Partial>; export declare const FoldableWithIndex: Readonly<{ of: (F: FoldableWithIndexRequirements) => FoldableWithIndex; readonly Array: FoldableWithIndex; }>; //# sourceMappingURL=foldable-with-index.d.ts.map