import { UInt32 } from 'o1js';
import { FrC } from '../../towers/index.js';
import { FpC } from '../../towers/index.js';
import { Sp1PlonkProof } from '../proof.js';
import { Sp1PlonkVk } from '../vk.js';
declare const BytesGamma_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesGamma extends BytesGamma_base {
}
declare const BytesBeta_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesBeta extends BytesBeta_base {
}
declare const BytesAlpha_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesAlpha extends BytesAlpha_base {
}
declare const BytesZeta_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesZeta extends BytesZeta_base {
}
declare const BytesGammaKzg_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesGammaKzg extends BytesGammaKzg_base {
}
declare const BytesRandomKzg_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class BytesRandomKzg extends BytesRandomKzg_base {
}
declare const Bytes32_base: typeof import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
export declare class Bytes32 extends Bytes32_base {
}
export type Sp1PlonkFiatShamirType = {
    gamma_digest: Bytes32;
    gamma: FrC;
    beta_digest: Bytes32;
    beta: FrC;
    alpha_digest: Bytes32;
    alpha: FrC;
    zeta_digest: Bytes32;
    zeta: FrC;
    gamma_kzg_digest: Bytes32;
    gamma_kzg: FrC;
};
declare const Sp1PlonkFiatShamir_base: (new (value: {
    gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma: import("o1js").CanonicalForeignField;
    beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    beta: import("o1js").CanonicalForeignField;
    alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    alpha: import("o1js").CanonicalForeignField;
    zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    zeta: import("o1js").CanonicalForeignField;
    gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma_kzg: import("o1js").CanonicalForeignField;
}) => {
    gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma: import("o1js").CanonicalForeignField;
    beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    beta: import("o1js").CanonicalForeignField;
    alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    alpha: import("o1js").CanonicalForeignField;
    zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    zeta: import("o1js").CanonicalForeignField;
    gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma_kzg: import("o1js").CanonicalForeignField;
}) & {
    _isStruct: true;
} & Omit<import("node_modules/o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma: import("o1js").CanonicalForeignField;
    beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    beta: import("o1js").CanonicalForeignField;
    alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    alpha: import("o1js").CanonicalForeignField;
    zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    zeta: import("o1js").CanonicalForeignField;
    gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
    gamma_kzg: import("o1js").CanonicalForeignField;
}, {
    gamma_digest: {
        bytes: {
            value: bigint;
        }[];
    };
    gamma: bigint;
    beta_digest: {
        bytes: {
            value: bigint;
        }[];
    };
    beta: bigint;
    alpha_digest: {
        bytes: {
            value: bigint;
        }[];
    };
    alpha: bigint;
    zeta_digest: {
        bytes: {
            value: bigint;
        }[];
    };
    zeta: bigint;
    gamma_kzg_digest: {
        bytes: {
            value: bigint;
        }[];
    };
    gamma_kzg: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("node_modules/o1js/dist/node/lib/provable/field.js").Field[]) => {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    };
} & {
    fromValue: (value: {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
            bytes: {
                value: bigint;
            }[];
        };
        gamma: bigint | import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
            bytes: {
                value: bigint;
            }[];
        };
        beta: bigint | import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
            bytes: {
                value: bigint;
            }[];
        };
        alpha: bigint | import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
            bytes: {
                value: bigint;
            }[];
        };
        zeta: bigint | import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes | {
            bytes: {
                value: bigint;
            }[];
        };
        gamma_kzg: bigint | import("o1js").CanonicalForeignField;
    }) => {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    };
    toInput: (x: {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    }) => {
        fields?: import("o1js").Field[] | undefined;
        packed?: [import("o1js").Field, number][] | undefined;
    };
    toJSON: (x: {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    }) => {
        gamma_digest: {
            bytes: {
                value: string;
            }[];
        };
        gamma: string;
        beta_digest: {
            bytes: {
                value: string;
            }[];
        };
        beta: string;
        alpha_digest: {
            bytes: {
                value: string;
            }[];
        };
        alpha: string;
        zeta_digest: {
            bytes: {
                value: string;
            }[];
        };
        zeta: string;
        gamma_kzg_digest: {
            bytes: {
                value: string;
            }[];
        };
        gamma_kzg: string;
    };
    fromJSON: (x: {
        gamma_digest: {
            bytes: {
                value: string;
            }[];
        };
        gamma: string;
        beta_digest: {
            bytes: {
                value: string;
            }[];
        };
        beta: string;
        alpha_digest: {
            bytes: {
                value: string;
            }[];
        };
        alpha: string;
        zeta_digest: {
            bytes: {
                value: string;
            }[];
        };
        zeta: string;
        gamma_kzg_digest: {
            bytes: {
                value: string;
            }[];
        };
        gamma_kzg: string;
    }) => {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    };
    empty: () => {
        gamma_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma: import("o1js").CanonicalForeignField;
        beta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        beta: import("o1js").CanonicalForeignField;
        alpha_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        alpha: import("o1js").CanonicalForeignField;
        zeta_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        zeta: import("o1js").CanonicalForeignField;
        gamma_kzg_digest: import("node_modules/o1js/dist/node/lib/provable/bytes.js").Bytes;
        gamma_kzg: import("o1js").CanonicalForeignField;
    };
};
declare class Sp1PlonkFiatShamir extends Sp1PlonkFiatShamir_base {
    constructor(fs: Sp1PlonkFiatShamirType);
    static empty(): Sp1PlonkFiatShamir;
    deepClone(): Sp1PlonkFiatShamir;
    squeezeGamma(proof: Sp1PlonkProof, pi0F: FrC, pi1F: FrC, pi2F: FrC, pi3F: FrC, pi4F: FrC, vk: Sp1PlonkVk): void;
    squeezeBeta(): void;
    squeezeAlpha(proof: Sp1PlonkProof): void;
    squeezeZeta(proof: Sp1PlonkProof): void;
    squeezeGammaKzg(proof: Sp1PlonkProof, vk: Sp1PlonkVk, linearized_cm_x: FpC, linearized_cm_y: FpC, linearized_opening: FrC): void;
    squeezeRandomForKzg(proof: Sp1PlonkProof, cm_x: FpC, cm_y: FpC): FrC;
    gammaKzgDigest_part0(proof: Sp1PlonkProof, vk: Sp1PlonkVk, linearized_cm_x: FpC, linearized_cm_y: FpC, linearized_opening: FrC): UInt32[];
    gammaKzgDigest_part1(proof: Sp1PlonkProof, H: UInt32[]): void;
    squeezeGammaKzgFromDigest(): void;
}
export { Sp1PlonkFiatShamir };
