import type * as P from "@principia/prelude";
import type { Separated } from "@principia/prelude/Utils";
import type { Either } from "../Either";
import type { Option } from "../Option";
import type { URI, V } from "./model";
/**
* ```haskell
* compact :: Compactable c => c (Maybe a) -> c a
* ```
*/
export declare const compact: (as: readonly Option[]) => readonly A[];
/**
* ```haskell
* separate :: Compactable c => c (Either a b) -> Separated (c a) (c b)
* ```
*/
export declare const separate: (fa: readonly Either[]) => Separated;
export declare const Compactable: P.Compactable<[URI], V>;
//# sourceMappingURL=compactable.d.ts.map