import * as Ord from "@effect-ts/system/Ord"; import type { Associative } from "./definition.js"; /** * Fold `Associative` through an `Array` */ export declare function fold(S: Associative): (a: A) => (as: ReadonlyArray) => A; /** * `Associative` that returns first element */ export declare function first(): Associative; /** * `Associative` that returns last element */ export declare function last(): Associative; /** * Given a tuple of `Associative` returns an `Associative` for the tuple */ export declare function tuple>>(...associatives: T): Associative<{ [K in keyof T]: T[K] extends Associative ? A : never; }>; /** * The dual of a `Associative`, obtained by swapping the arguments of `combine`. */ export declare function inverted(S: Associative): Associative; /** * `Associative` for function combination */ export declare function func(S: Associative): () => Associative<(a: A) => S>; /** * `Associative` for a structure */ export declare function struct>(associatives: { [K in keyof O]: Associative; }): Associative; /** * `Associative` that returns last `Min` of elements */ export declare function min(O: Ord.Ord): Associative; /** * `Associative` that returns last `Max` of elements */ export declare function max(O: Ord.Ord): Associative; /** * Returns a `Associative` instance for objects preserving their type */ export declare function object(): Associative; /** * You can glue items between and stay associative */ export declare function intercalate(a: A): (S: Associative) => Associative; export * from "./definition.js"; //# sourceMappingURL=operations.d.ts.map