import { Fp2 } from './fp2.js';
import { Fp6 } from './fp6.js';
import type { Field12 } from '@nori-zk/proof-conversion-utils';
type Fp12Type = Field12;
declare const Fp12_base: (new (value: {
    c0: Fp6;
    c1: Fp6;
}) => {
    c0: Fp6;
    c1: Fp6;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    c0: Fp6;
    c1: Fp6;
}, {
    c0: {
        c0: {
            c0: bigint;
            c1: bigint;
        };
        c1: {
            c0: bigint;
            c1: bigint;
        };
        c2: {
            c0: bigint;
            c1: bigint;
        };
    };
    c1: {
        c0: {
            c0: bigint;
            c1: bigint;
        };
        c1: {
            c0: bigint;
            c1: bigint;
        };
        c2: {
            c0: bigint;
            c1: bigint;
        };
    };
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        c0: Fp6;
        c1: Fp6;
    };
} & {
    fromValue: (value: {
        c0: Fp6 | {
            c0: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
            c1: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
            c2: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
        };
        c1: Fp6 | {
            c0: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
            c1: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
            c2: Fp2 | {
                c0: bigint | import("o1js").AlmostForeignField;
                c1: bigint | import("o1js").AlmostForeignField;
            };
        };
    }) => {
        c0: Fp6;
        c1: Fp6;
    };
    toInput: (x: {
        c0: Fp6;
        c1: Fp6;
    }) => {
        fields?: import("o1js").Field[] | undefined;
        packed?: [import("o1js").Field, number][] | undefined;
    };
    toJSON: (x: {
        c0: Fp6;
        c1: Fp6;
    }) => {
        c0: {
            c0: {
                c0: string;
                c1: string;
            };
            c1: {
                c0: string;
                c1: string;
            };
            c2: {
                c0: string;
                c1: string;
            };
        };
        c1: {
            c0: {
                c0: string;
                c1: string;
            };
            c1: {
                c0: string;
                c1: string;
            };
            c2: {
                c0: string;
                c1: string;
            };
        };
    };
    fromJSON: (x: {
        c0: {
            c0: {
                c0: string;
                c1: string;
            };
            c1: {
                c0: string;
                c1: string;
            };
            c2: {
                c0: string;
                c1: string;
            };
        };
        c1: {
            c0: {
                c0: string;
                c1: string;
            };
            c1: {
                c0: string;
                c1: string;
            };
            c2: {
                c0: string;
                c1: string;
            };
        };
    }) => {
        c0: Fp6;
        c1: Fp6;
    };
    empty: () => {
        c0: Fp6;
        c1: Fp6;
    };
};
declare class Fp12 extends Fp12_base {
    static zero(): Fp12;
    static one(): Fp12;
    neg(): Fp12;
    conjugate(): Fp12;
    assert_equals(rhs: Fp12): void;
    inverse(): Fp12;
    mul(rhs: Fp12): Fp12;
    sparse_mul(rhs: Fp12): Fp12;
    square(): Fp12;
    frobenius_pow_p(): Fp12;
    frobenius_pow_p_with_gammas(gamma_1s: Array<Fp2>): Fp12;
    frobenius_pow_p_squared(): Fp12;
    frobenius_pow_p_squared_with_gammas(gamma_2s: Array<Fp2>): Fp12;
    frobenius_pow_p_cubed(): Fp12;
    frobenius_pow_p_cubed_with_gammas(gamma_3s: Array<Fp2>): Fp12;
    pow(expBeWnaf: Array<number>): Fp12;
    exp_e(): Fp12;
    display(name: string): void;
    toJSON(): string;
    static loadFromJSON(json: Fp12Type): Fp12;
}
export { Fp12, Fp12Type };
