import type { Monoid } from './Monoid'; import * as HKT from './HKT'; export interface FoldableWithIndex extends HKT.Base { readonly ifoldl_: FoldLeftWithIndexFn_; readonly ifoldl: FoldLeftWithIndexFn; readonly ifoldMap_: FoldMapWithIndexFn_; readonly ifoldMap: FoldMapWithIndexFn; readonly ifoldr_: FoldRightWithIndexFn_; readonly ifoldr: FoldRightWithIndexFn; } export declare type FoldableWithIndexMin = { readonly ifoldl_: FoldLeftWithIndexFn_; readonly ifoldr_: FoldRightWithIndexFn_; readonly ifoldMap_: FoldMapWithIndexFn_; }; export declare function FoldableWithIndex(F: FoldableWithIndexMin): FoldableWithIndex; export interface FoldableWithIndexComposition extends HKT.CompositionBase2 { readonly ifoldl_: FoldLeftWithIndexFnComposition_; readonly ifoldl: FoldLeftWithIndexFnComposition; readonly ifoldMap_: FoldMapWithIndexFnComposition_; readonly ifoldMap: FoldMapWithIndexFnComposition; readonly ifoldr_: FoldRightWithIndexFnComposition_; readonly ifoldr: FoldRightWithIndexFnComposition; } export declare function getFoldableWithIndexComposition(F: FoldableWithIndex, G: FoldableWithIndex): FoldableWithIndexComposition; export interface FoldLeftWithIndexFn { (b: B, f: (b: B, i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => B): (fa: HKT.Kind) => B; } export interface FoldLeftWithIndexFn_ { (fa: HKT.Kind, b: B, f: (b: B, i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => B): B; } export interface FoldLeftWithIndexFnComposition { (b: B, f: (b: B, i: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], a: A) => B): (fga: HKT.Kind>) => B; } export interface FoldLeftWithIndexFnComposition_ { (fga: HKT.Kind>, b: B, f: (b: B, i: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], a: A) => B): B; } export interface FoldRightWithIndexFn { (b: B, f: (a: A, k: HKT.IndexFor, HKT.OrFix<'K', C, K>>, b: B) => B): (fa: HKT.Kind) => B; } export interface FoldRightWithIndexFn_ { (fa: HKT.Kind, b: B, f: (a: A, k: HKT.IndexFor, HKT.OrFix<'K', C, K>>, b: B) => B): B; } export interface FoldRightWithIndexFnComposition { (b: B, f: (a: A, k: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], b: B) => B): (fga: HKT.Kind>) => B; } export interface FoldRightWithIndexFnComposition_ { (fga: HKT.Kind>, b: B, f: (a: A, k: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], b: B) => B): B; } export interface FoldMapWithIndexFn { (M: Monoid): (f: (k: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => M) => (fa: HKT.Kind) => M; } export interface FoldMapWithIndexFn_ { (M: Monoid): (fa: HKT.Kind, f: (k: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => M) => M; } export interface FoldMapWithIndexFnComposition { (M: Monoid): (f: (k: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], a: A) => M) => (fga: HKT.Kind>) => M; } export interface FoldMapWithIndexFnComposition_ { (M: Monoid): (fga: HKT.Kind>, f: (k: [ HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, HKT.IndexFor, HKT.OrFix<'K', CG, KG>> ], a: A) => M) => M; } //# sourceMappingURL=FoldableWithIndex.d.ts.map