import type { ReadonlyRecord } from "../Record"; import type { Eq } from "./model"; export * from "@principia/prelude/Eq/combinators"; export declare const nullable: (or: Eq) => Eq; export declare const type: ( eqs: { [K in keyof A]: Eq; } ) => Eq< { [K in keyof A]: A[K]; } >; export declare const partial: ( properties: { [K in keyof A]: Eq } ) => Eq>; export declare const record: (codomain: Eq) => Eq>; export declare const array: (item: Eq) => Eq>; export declare const tuple: >( ...components: { [K in keyof A]: Eq; } ) => Eq; export declare const intersect_: (left: Eq, right: Eq) => Eq; export declare const intersect: (right: Eq) => (left: Eq) => Eq; export declare const sum_: ( tag: T, members: { [K in keyof A]: Eq> } ) => Eq; export declare const sum: ( tag: T ) => (members: { [K in keyof A]: Eq> }) => Eq; export declare const lazy: (f: () => Eq) => Eq; //# sourceMappingURL=combinators.d.ts.map