/// <reference types="node" />
import BN from "bn.js";
import { Scalar } from "../../index";
import Ed25519 from "./curve";
declare class RedBN extends BN {
    fromRed(): BN;
    redAdd(_: BN): RedBN;
    redSub(_: BN): RedBN;
    redMul(_: BN): RedBN;
    redInvm(): RedBN;
    redNeg(): RedBN;
}
export default class Ed25519Scalar implements Scalar {
    ref: {
        arr: RedBN;
        curve: Ed25519;
        red: any;
    };
    constructor(curve: Ed25519, red: any);
    /** @inheritdoc */
    marshalSize(): number;
    /** @inheritdoc */
    marshalBinary(): Buffer;
    /** @inheritdoc */
    unmarshalBinary(bytes: Buffer): void;
    /** @inheritdoc */
    set(a: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    clone(): Scalar;
    /** @inheritdoc */
    zero(): Scalar;
    /** @inheritdoc */
    add(a: Ed25519Scalar, b: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    sub(a: Ed25519Scalar, b: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    neg(a: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    mul(s1: Ed25519Scalar, s2: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    div(s1: Ed25519Scalar, s2: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    inv(a: Ed25519Scalar): Ed25519Scalar;
    /** @inheritdoc */
    one(): Ed25519Scalar;
    /** @inheritdoc */
    pick(callback?: (length: number) => Buffer): Scalar;
    /** @inheritdoc */
    setBytes(bytes: Buffer): Scalar;
    /** @inheritdoc */
    equals(s2: Ed25519Scalar): boolean;
    toString(): string;
}
export {};
