import { Field } from 'o1js';
import { Fp2, Fp12 } from '../towers/index.js';
declare const G2Affine_base: (new (value: {
    x: Fp2;
    y: Fp2;
}) => {
    x: Fp2;
    y: Fp2;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    x: Fp2;
    y: Fp2;
}, {
    x: {
        c0: bigint;
        c1: bigint;
    };
    y: {
        c0: bigint;
        c1: bigint;
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        x: Fp2;
        y: Fp2;
    };
} & {
    fromValue: (value: {
        x: Fp2 | {
            c0: bigint | import("o1js").AlmostForeignField;
            c1: bigint | import("o1js").AlmostForeignField;
        };
        y: Fp2 | {
            c0: bigint | import("o1js").AlmostForeignField;
            c1: bigint | import("o1js").AlmostForeignField;
        };
    }) => {
        x: Fp2;
        y: Fp2;
    };
    toInput: (x: {
        x: Fp2;
        y: Fp2;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        x: Fp2;
        y: Fp2;
    }) => {
        x: {
            c0: string;
            c1: string;
        };
        y: {
            c0: string;
            c1: string;
        };
    };
    fromJSON: (x: {
        x: {
            c0: string;
            c1: string;
        };
        y: {
            c0: string;
            c1: string;
        };
    }) => {
        x: Fp2;
        y: Fp2;
    };
    empty: () => {
        x: Fp2;
        y: Fp2;
    };
};
declare class G2Affine extends G2Affine_base {
    equals(rhs: G2Affine): Field;
    neg(): G2Affine;
    computeLambdaSame(): Fp2;
    computeLambdaDiff(rhs: G2Affine): Fp2;
    computeMu(lambda: Fp2): Fp2;
    add(rhs: G2Affine): G2Affine;
    double_from_line(lambda: Fp2): G2Affine;
    add_from_line(lambda: Fp2, rhs: G2Affine): G2Affine;
    frobenius(): G2Affine;
    frobFromInputs(g1: Fp2, g2: Fp2): G2Affine;
    negative_frobenius(): G2Affine;
    negFrobFromInputs(g1: Fp2, g2: Fp2): G2Affine;
    hom(): [Fp12, Fp12];
}
export { G2Affine };
