import type { Predicate, PredicateWithIndex, Refinement, RefinementWithIndex } from "../Function";
import type { Option } from "../Option";
import type { NonEmptyArray } from "./model";
/**
* ```haskell
* filterWithIndex_ :: (NonEmptyArray f, Index k) =>
* (f a, ((k, a) -> Boolean)) -> Option (f a)
* ```
*/
export declare const filterWithIndex_: {
(fa: NonEmptyArray, f: RefinementWithIndex): Option>;
(fa: NonEmptyArray, f: PredicateWithIndex): Option>;
};
/**
* ```haskell
* filterWithIndex :: (NonEmptyArray f, Index k) =>
* ((k, a) -> Boolean) -> f a -> Option (f a)
* ```
*/
export declare const filterWithIndex: {
(f: RefinementWithIndex): (fa: NonEmptyArray) => Option>;
(f: PredicateWithIndex): (fa: NonEmptyArray) => Option>;
};
/**
* ```haskell
* filter_ :: NonEmptyArray f => (f a, (a -> Boolean)) -> Option (f a)
* ```
*/
export declare const filter_: {
(fa: NonEmptyArray, f: Refinement): Option>;
(fa: NonEmptyArray, f: Predicate): Option>;
};
/**
* ```haskell
* filter :: NonEmptyArray f => (a -> Boolean) -> f a -> Option (f a)
* ```
*/
export declare const filter: {
(f: Refinement): (fa: NonEmptyArray) => Option>;
(f: Predicate): (fa: NonEmptyArray) => Option>;
};
//# sourceMappingURL=filterable.d.ts.map