import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../../../common.js";
export type ZKTranscriptStruct = {
    relationParameters: Honk.RelationParametersStruct;
    alphas: BigNumberish[];
    gateChallenges: BigNumberish[];
    libraChallenge: BigNumberish;
    sumCheckUChallenges: BigNumberish[];
    rho: BigNumberish;
    geminiR: BigNumberish;
    shplonkNu: BigNumberish;
    shplonkZ: BigNumberish;
    publicInputsDelta: BigNumberish;
};
export type ZKTranscriptStructOutput = [relationParameters: Honk.RelationParametersStructOutput, alphas: bigint[], gateChallenges: bigint[], libraChallenge: bigint, sumCheckUChallenges: bigint[], rho: bigint, geminiR: bigint, shplonkNu: bigint, shplonkZ: bigint, publicInputsDelta: bigint] & {
    relationParameters: Honk.RelationParametersStructOutput;
    alphas: bigint[];
    gateChallenges: bigint[];
    libraChallenge: bigint;
    sumCheckUChallenges: bigint[];
    rho: bigint;
    geminiR: bigint;
    shplonkNu: bigint;
    shplonkZ: bigint;
    publicInputsDelta: bigint;
};
export declare namespace Honk {
    type G1PointStruct = {
        x: BigNumberish;
        y: BigNumberish;
    };
    type G1PointStructOutput = [x: bigint, y: bigint] & {
        x: bigint;
        y: bigint;
    };
    type ZKProofStruct = {
        pairingPointObject: BigNumberish[];
        geminiMaskingPoly: Honk.G1PointStruct;
        w1: Honk.G1PointStruct;
        w2: Honk.G1PointStruct;
        w3: Honk.G1PointStruct;
        w4: Honk.G1PointStruct;
        lookupReadCounts: Honk.G1PointStruct;
        lookupReadTags: Honk.G1PointStruct;
        lookupInverses: Honk.G1PointStruct;
        zPerm: Honk.G1PointStruct;
        libraCommitments: [Honk.G1PointStruct, Honk.G1PointStruct, Honk.G1PointStruct];
        libraSum: BigNumberish;
        sumcheckUnivariates: BigNumberish[][];
        libraEvaluation: BigNumberish;
        sumcheckEvaluations: BigNumberish[];
        geminiFoldComms: Honk.G1PointStruct[];
        geminiAEvaluations: BigNumberish[];
        libraPolyEvals: [BigNumberish, BigNumberish, BigNumberish, BigNumberish];
        shplonkQ: Honk.G1PointStruct;
        kzgQuotient: Honk.G1PointStruct;
    };
    type ZKProofStructOutput = [pairingPointObject: bigint[], geminiMaskingPoly: Honk.G1PointStructOutput, w1: Honk.G1PointStructOutput, w2: Honk.G1PointStructOutput, w3: Honk.G1PointStructOutput, w4: Honk.G1PointStructOutput, lookupReadCounts: Honk.G1PointStructOutput, lookupReadTags: Honk.G1PointStructOutput, lookupInverses: Honk.G1PointStructOutput, zPerm: Honk.G1PointStructOutput, libraCommitments: [Honk.G1PointStructOutput, Honk.G1PointStructOutput, Honk.G1PointStructOutput], libraSum: bigint, sumcheckUnivariates: bigint[][], libraEvaluation: bigint, sumcheckEvaluations: bigint[], geminiFoldComms: Honk.G1PointStructOutput[], geminiAEvaluations: bigint[], libraPolyEvals: [bigint, bigint, bigint, bigint], shplonkQ: Honk.G1PointStructOutput, kzgQuotient: Honk.G1PointStructOutput] & {
        pairingPointObject: bigint[];
        geminiMaskingPoly: Honk.G1PointStructOutput;
        w1: Honk.G1PointStructOutput;
        w2: Honk.G1PointStructOutput;
        w3: Honk.G1PointStructOutput;
        w4: Honk.G1PointStructOutput;
        lookupReadCounts: Honk.G1PointStructOutput;
        lookupReadTags: Honk.G1PointStructOutput;
        lookupInverses: Honk.G1PointStructOutput;
        zPerm: Honk.G1PointStructOutput;
        libraCommitments: [Honk.G1PointStructOutput, Honk.G1PointStructOutput, Honk.G1PointStructOutput];
        libraSum: bigint;
        sumcheckUnivariates: bigint[][];
        libraEvaluation: bigint;
        sumcheckEvaluations: bigint[];
        geminiFoldComms: Honk.G1PointStructOutput[];
        geminiAEvaluations: bigint[];
        libraPolyEvals: [bigint, bigint, bigint, bigint];
        shplonkQ: Honk.G1PointStructOutput;
        kzgQuotient: Honk.G1PointStructOutput;
    };
    type RelationParametersStruct = {
        eta: BigNumberish;
        etaTwo: BigNumberish;
        etaThree: BigNumberish;
        beta: BigNumberish;
        gamma: BigNumberish;
        publicInputsDelta: BigNumberish;
    };
    type RelationParametersStructOutput = [eta: bigint, etaTwo: bigint, etaThree: bigint, beta: bigint, gamma: bigint, publicInputsDelta: bigint] & {
        eta: bigint;
        etaTwo: bigint;
        etaThree: bigint;
        beta: bigint;
        gamma: bigint;
        publicInputsDelta: bigint;
    };
}
export interface ZKTranscriptLibInterface extends Interface {
    getFunction(nameOrSignature: "generateTranscript"): FunctionFragment;
    encodeFunctionData(functionFragment: 'generateTranscript', values: [Honk.ZKProofStruct, BytesLike[], BigNumberish, BigNumberish, BigNumberish]): string;
    decodeFunctionResult(functionFragment: 'generateTranscript', data: BytesLike): Result;
}
export interface ZKTranscriptLib extends BaseContract {
    connect(runner?: ContractRunner | null): ZKTranscriptLib;
    waitForDeployment(): Promise<this>;
    interface: ZKTranscriptLibInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    generateTranscript: TypedContractMethod<[
        proof: Honk.ZKProofStruct,
        publicInputs: BytesLike[],
        vkHash: BigNumberish,
        publicInputsSize: BigNumberish,
        logN: BigNumberish
    ], [
        ZKTranscriptStructOutput
    ], 'view'>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: 'generateTranscript'): TypedContractMethod<[
        proof: Honk.ZKProofStruct,
        publicInputs: BytesLike[],
        vkHash: BigNumberish,
        publicInputsSize: BigNumberish,
        logN: BigNumberish
    ], [
        ZKTranscriptStructOutput
    ], 'view'>;
    filters: {};
}
//# sourceMappingURL=ZKTranscriptLib.d.ts.map