/**
 * Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Field.purs
 *
 * @remarks
 * Added in 1.0.0
 * @packageDocumentation
 */
import { type Eq } from "./Eq.js";
import { type Ring } from "./Ring.js";
/**
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Category: Model
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export interface Field<A> extends Ring<A> {
    readonly degree: (a: A) => number;
    readonly div: (x: A, y: A) => A;
    readonly mod: (x: A, y: A) => A;
}
/**
 * The _greatest common divisor_ of two values
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export declare function gcd<A>(E: Eq<A>, field: Field<A>): (x: A, y: A) => A;
/**
 * The _least common multiple_ of two values
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @public
 */
export declare function lcm<A>(E: Eq<A>, F: Field<A>): (x: A, y: A) => A;
/**
 * Use [`Field`](./number.ts.html#field) instead.
 *
 * @remarks
 * Added in 1.0.0
 * @remarks
 * Original License: MIT – Copyright (c) 2017-present Giulio Canti
 * @deprecated Zone of Death
 * @public
 */
export declare const fieldNumber: Field<number>;
//# sourceMappingURL=Field.d.ts.map