import type { Applicative } from './Applicative'; import type { FunctorWithIndexMin } from './FunctorWithIndex'; import { FunctorWithIndex } from './FunctorWithIndex'; import * as HKT from './HKT'; export interface TraversableWithIndex extends FunctorWithIndex { readonly itraverse_: TraverseWithIndexFn_; readonly itraverse: TraverseWithIndexFn; } export declare type TraversableWithIndexMin = FunctorWithIndexMin & { readonly itraverse_: TraverseWithIndexFn_; }; export declare function TraversableWithIndex(F: TraversableWithIndexMin): TraversableWithIndex; export interface TraverseWithIndexFn { (A: Applicative): (f: (i: HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, a: A) => HKT.Kind) => (ta: HKT.Kind) => HKT.Kind>; } export interface TraverseWithIndexFn_ { (A: Applicative): (ta: HKT.Kind, f: (i: HKT.IndexFor, HKT.OrFix<'K', CF, KF>>, a: A) => HKT.Kind) => HKT.Kind>; } export interface TraverseWithIndexFnComposition { (A: Applicative): (f: (i: [ HKT.IndexFor, HKT.OrFix<'K', CF, FK>>, HKT.IndexFor, HKT.OrFix<'K', CG, GK>> ], a: A) => HKT.Kind) => (fga: HKT.Kind>) => HKT.Kind>>; } export interface TraverseWithIndexFnComposition_ { (A: Applicative): (fga: HKT.Kind>, f: (i: [ HKT.IndexFor, HKT.OrFix<'K', CF, FK>>, HKT.IndexFor, HKT.OrFix<'K', CG, GK>> ], a: A) => HKT.Kind) => HKT.Kind>>; } export declare function implementTraverseWithIndex(): (i: (_: { A: A; B: B; G: G; N: N; K: K; Q: Q; W: W; X: X; I: I; S: S; R: R; E: E; }) => (A: Applicative>) => (f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => HKT.HKT) => (ta: HKT.Kind) => HKT.HKT>) => TraverseWithIndexFn; export declare function implementTraverseWithIndex_(): (i: (_: { A: A; B: B; G: G; N: N; K: HKT.OrFix<'K', C, K>; Q: Q; W: W; X: X; I: I; S: S; R: R; E: HKT.OrFix<'E', C, E>; }) => (G: Applicative>) => (ta: HKT.Kind, f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => HKT.HKT) => HKT.HKT>) => TraverseWithIndexFn_; //# sourceMappingURL=TraversableWithIndex.d.ts.map