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