/**
* Eq is a data type that determines if two values of the same type are equal, and abides
* the following laws:
*
* 1. Reflexivity: `x === x`
* 2. Symmetry: `x === y <=> y === x`
* 3. Transitivity: `x === y && y === z => x === z`
*
* @since 2.0.0
*/
import { type Contravariant1 } from 'fp-ts/Contravariant';
import { type Invariant1 } from 'fp-ts/Invariant';
/**
* Represents a typeclass and data type that determines if two values of the same type are
* equal, and follows the following laws:
*
* 1. Reflexivity: `x === x`
* 2. Symmetry: `x === y <=> y === x`
* 3. Transitivity: `x === y && y === z => x === z`
*
* @since 2.0.0
* @category Model
*/
export interface Eq {
readonly equals: (x: A, y: A) => boolean;
}
/**
* @since 2.0.0
* @category Constructors
*/
export declare const fromEquals: (equals: (x: A, y: A) => boolean) => Eq;
export {
/**
* Interprets a schema as an `Eq` instance.
*
* @since 2.0.0
* @category Interpreters
*/
deriveEq, } from 'schemata-ts/derivations/eq-schemable';
/**
* @since 2.0.0
* @category URI
*/
export declare const URI = "schemata-ts/Eq";
/**
* @since 2.0.0
* @category URI
*/
export type URI = typeof URI;
declare module 'fp-ts/lib/HKT' {
interface URItoKind {
readonly [URI]: Eq;
}
}
/**
* @since 2.0.0
* @category Instance Methods
*/
export declare const imap: (f: (a: A) => B, g: (b: B) => A) => (fa: Eq) => Eq;
/**
* @since 2.0.0
* @category Instances
*/
export declare const Invariant: Invariant1;
/**
* @since 2.0.0
* @category Instance Methods
*/
export declare const contramap: (f: (b: B) => A) => (fa: Eq) => Eq;
/**
* @since 2.0.0
* @category Instances
*/
export declare const Contravariant: Contravariant1;
/**
* @since 2.0.0
* @category Combinators
*/
export declare const and: (that: Eq) => (self: Eq) => Eq;
/**
* @since 2.0.0
* @category Instances
*/
export declare const always: Eq;
/**
* @since 2.0.0
* @category Combinators
*/
export declare const or: (that: Eq) => (self: Eq) => Eq;
/**
* @since 2.0.0
* @category Instances
*/
export declare const eqStrict: Eq;
//# sourceMappingURL=Eq.d.ts.map