import { BarretenbergBinder } from '../barretenberg_binder/index.js';
import { Fr, Fq, Point, Buffer32, Buffer128, Ptr } from '../types/index.js';
export declare class BarretenbergApi {
    binder: BarretenbergBinder;
    constructor(binder: BarretenbergBinder);
    destroy(): Promise<void>;
    randomPoint(): Promise<Point>;
    addPoints(p1X: Fq, p1Y: Fq, p2X: Fq, p2Y: Fq): Promise<[Fq, Fq]>;
    doublePoint(pX: Fq, pY: Fq): Promise<[Fq, Fq]>;
    addFields(left: Fq, right: Fq): Promise<Fq>;
    pointScalar(p: Point, scalar: Fr): Promise<[Fq, Fq]>;
    naiveMsm(points: Point[], scalars: Fr[]): Promise<[Fq, Fq]>;
    pippengerMsm(points: Point[], scalars: Fr[]): Promise<[Fq, Fq]>;
    subFields(left: Fq, right: Fq): Promise<Fq>;
    mulFields(left: Fq, right: Fq): Promise<Fq>;
    invertField(input: Fq): Promise<Fq>;
    expField(base: Fq, exp: Fq): Promise<Fq>;
    sqrtField(base: Fq): Promise<Fq>;
    fft(coeff: Fr[], evaulation_domain: Ptr): Promise<Fr[]>;
    randomPolynomial(degree: number): Promise<Fr[]>;
    newEvaluationDomain(degree: number): Promise<Ptr>;
    pedersenCommit(inputsBuffer: Fr[]): Promise<Point>;
    pedersenHashWithHashIndex(inputsBuffer: Fr[], hashIndex: number): Promise<Fr>;
    blake2s(data: Uint8Array): Promise<Buffer32>;
    blake2sToField(data: Uint8Array): Promise<Fr>;
    schnorrComputePublicKey(privateKey: Fr): Promise<Point>;
    schnorrNegatePublicKey(publicKeyBuffer: Point): Promise<Point>;
    schnorrConstructSignature(message: Uint8Array, privateKey: Fr): Promise<[Buffer32, Buffer32]>;
    schnorrVerifySignature(message: Uint8Array, pubKey: Point, sigS: Buffer32, sigE: Buffer32): Promise<boolean>;
    schnorrMultisigCreateMultisigPublicKey(privateKey: Fq): Promise<Buffer128>;
    schnorrMultisigValidateAndCombineSignerPubkeys(signerPubkeyBuf: Buffer128[]): Promise<[Point, boolean]>;
    schnorrMultisigConstructSignatureRound1(): Promise<[Buffer128, Buffer128]>;
    schnorrMultisigConstructSignatureRound2(message: Uint8Array, privateKey: Fq, signerRoundOnePrivateBuf: Buffer128, signerPubkeysBuf: Buffer128[], roundOnePublicBuf: Buffer128[]): Promise<[Fq, boolean]>;
    schnorrMultisigCombineSignatures(message: Uint8Array, signerPubkeysBuf: Buffer128[], roundOneBuf: Buffer128[], roundTwoBuf: Fr[]): Promise<[Buffer32, Buffer32, boolean]>;
    srsInitSrs(pointsBuf: Uint8Array, numPoints: number, g2PointBuf: Uint8Array): Promise<void>;
    examplesSimpleCreateAndVerifyProof(): Promise<boolean>;
    testThreads(threads: number, iterations: number): Promise<number>;
    commonInitSlabAllocator(circuitSize: number): Promise<void>;
    acirGetCircuitSizes(constraintSystemBuf: Uint8Array): Promise<[number, number, number]>;
    acirNewAcirComposer(sizeHint: number): Promise<Ptr>;
    acirDeleteAcirComposer(acirComposerPtr: Ptr): Promise<void>;
    acirCreateCircuit(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, sizeHint: number): Promise<void>;
    acirInitProvingKey(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array): Promise<void>;
    acirCreateProof(acirComposerPtr: Ptr, constraintSystemBuf: Uint8Array, witnessBuf: Uint8Array, isRecursive: boolean): Promise<Uint8Array>;
    acirLoadVerificationKey(acirComposerPtr: Ptr, vkBuf: Uint8Array): Promise<void>;
    acirInitVerificationKey(acirComposerPtr: Ptr): Promise<void>;
    acirGetVerificationKey(acirComposerPtr: Ptr): Promise<Uint8Array>;
    acirVerifyProof(acirComposerPtr: Ptr, proofBuf: Uint8Array, isRecursive: boolean): Promise<boolean>;
    acirGetSolidityVerifier(acirComposerPtr: Ptr): Promise<string>;
    acirSerializeProofIntoFields(acirComposerPtr: Ptr, proofBuf: Uint8Array, numInnerPublicInputs: number): Promise<Fr[]>;
    acirSerializeVerificationKeyIntoFields(acirComposerPtr: Ptr): Promise<[Fr[], Fr]>;
}
//# sourceMappingURL=index.d.ts.map