import type { Either } from './Either'; import type { FunctorWithIndexMin } from './FunctorWithIndex'; import type { Option } from './Option'; import type { PredicateWithIndex } from './Predicate'; import type { RefinementWithIndex } from './Refinement'; import { FunctorWithIndex } from './FunctorWithIndex'; import * as HKT from './HKT'; export interface FilterableWithIndex extends FunctorWithIndex { readonly ipartitionMap_: PartitionMapWithIndexFn_; readonly ipartition_: PartitionWithIndexFn_; readonly ifilterMap_: FilterMapWithIndexFn_; readonly ifilter_: FilterWithIndexFn_; readonly ipartitionMap: PartitionMapWithIndexFn; readonly ipartition: PartitionWithIndexFn; readonly ifilterMap: FilterMapWithIndexFn; readonly ifilter: FilterWithIndexFn; } export declare type FilterableWithIndexMin = FunctorWithIndexMin & ({ readonly ifilterMap_: FilterMapWithIndexFn_; readonly ipartitionMap_: PartitionMapWithIndexFn_; } | { readonly ifilterMap_: FilterMapWithIndexFn_; readonly ipartitionMap_: PartitionMapWithIndexFn_; readonly ifilter_: FilterWithIndexFn_; readonly ipartition_: PartitionWithIndexFn_; }); export declare function FilterableWithIndex(F: FilterableWithIndexMin): FilterableWithIndex; export interface FilterWithIndexFn { (refinement: RefinementWithIndex, HKT.OrFix<'K', C, K>>, A, B>): (fa: HKT.Kind) => HKT.Kind; (predicate: PredicateWithIndex, HKT.OrFix<'K', C, K>>, A>): (fa: HKT.Kind) => HKT.Kind; } export interface FilterWithIndexFn_ { (fa: HKT.Kind, refinement: RefinementWithIndex, HKT.OrFix<'K', C, K>>, A, B>): HKT.Kind; (fa: HKT.Kind, predicate: PredicateWithIndex, HKT.OrFix<'K', C, K>>, A>): HKT.Kind; } export interface FilterMapWithIndexFn { (f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => Option): (fa: HKT.Kind) => HKT.Kind; } export interface FilterMapWithIndexFn_ { (fa: HKT.Kind, f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => Option): HKT.Kind; } export interface PartitionMapWithIndexFn { (f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => Either): (fa: HKT.Kind) => readonly [HKT.Kind, HKT.Kind]; } export interface PartitionMapWithIndexFn_ { (fa: HKT.Kind, f: (i: HKT.IndexFor, HKT.OrFix<'K', C, K>>, a: A) => Either): readonly [HKT.Kind, HKT.Kind]; } export interface PartitionWithIndexFn { (refinement: RefinementWithIndex, HKT.OrFix<'K', C, K>>, A, B>): (fa: HKT.Kind) => readonly [HKT.Kind, HKT.Kind]; (predicate: PredicateWithIndex, HKT.OrFix<'K', C, K>>, A>): (fa: HKT.Kind) => readonly [HKT.Kind, HKT.Kind]; } export interface PartitionWithIndexFn_ { (fa: HKT.Kind, refinement: RefinementWithIndex, HKT.OrFix<'K', C, K>>, A, B>): readonly [HKT.Kind, HKT.Kind]; (fa: HKT.Kind, predicate: PredicateWithIndex, HKT.OrFix<'K', C, K>>, A>): readonly [HKT.Kind, HKT.Kind]; } //# sourceMappingURL=FilterableWithIndex.d.ts.map