import { Field } from 'o1js';
import { FpC } from './fp.js';
import { Fp2 } from './fp2.js';
declare const Fp6_base: (new (value: {
    c0: Fp2;
    c1: Fp2;
    c2: Fp2;
}) => {
    c0: Fp2;
    c1: Fp2;
    c2: Fp2;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    c0: Fp2;
    c1: Fp2;
    c2: Fp2;
}, {
    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: Fp2;
        c1: Fp2;
        c2: Fp2;
    };
} & {
    fromValue: (value: {
        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: Fp2;
        c1: Fp2;
        c2: Fp2;
    };
    toInput: (x: {
        c0: Fp2;
        c1: Fp2;
        c2: Fp2;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        c0: Fp2;
        c1: Fp2;
        c2: Fp2;
    }) => {
        c0: {
            c0: string;
            c1: string;
        };
        c1: {
            c0: string;
            c1: string;
        };
        c2: {
            c0: string;
            c1: string;
        };
    };
    fromJSON: (x: {
        c0: {
            c0: string;
            c1: string;
        };
        c1: {
            c0: string;
            c1: string;
        };
        c2: {
            c0: string;
            c1: string;
        };
    }) => {
        c0: Fp2;
        c1: Fp2;
        c2: Fp2;
    };
    empty: () => {
        c0: Fp2;
        c1: Fp2;
        c2: Fp2;
    };
};
declare class Fp6 extends Fp6_base {
    static zero(): Fp6;
    static one(): Fp6;
    assert_equals(rhs: Fp6): void;
    neg(): Fp6;
    inverse(): Fp6;
    add(rhs: Fp6): Fp6;
    sub(rhs: Fp6): Fp6;
    mul_by_v(): Fp6;
    mul_by_fp(rhs: FpC): Fp6;
    mul(rhs: Fp6): Fp6;
    mul_by_fp2(rhs: Fp2): Fp6;
    mul_by_sparse_fp6(rhs: Fp6): Fp6;
}
export { Fp6 };
