/// <reference types="node" resolution-mode="require"/>
/// <reference types="node" resolution-mode="require"/>
import { Fr, NULLIFIER_TREE_HEIGHT, NullifierLeafPreimage } from '@aztec/circuits.js';
import { z } from 'zod';
import { SiblingPath } from '../sibling_path/index.js';
/**
 * Nullifier membership witness.
 * @remarks When this represents membership witness of a low nullifier it can be used to perform a nullifier
 * non-inclusion proof by leveraging the "linked list structure" of leaves and proving that a lower nullifier
 * is pointing to a bigger next value than the nullifier we are trying to prove non-inclusion for.
 */
export declare class NullifierMembershipWitness {
    /**
     * The index of the nullifier in a tree.
     */
    readonly index: bigint;
    /**
     * Preimage of the nullifier.
     */
    readonly leafPreimage: NullifierLeafPreimage;
    /**
     * Sibling path to prove membership of the nullifier.
     */
    readonly siblingPath: SiblingPath<typeof NULLIFIER_TREE_HEIGHT>;
    constructor(
    /**
     * The index of the nullifier in a tree.
     */
    index: bigint, 
    /**
     * Preimage of the nullifier.
     */
    leafPreimage: NullifierLeafPreimage, 
    /**
     * Sibling path to prove membership of the nullifier.
     */
    siblingPath: SiblingPath<typeof NULLIFIER_TREE_HEIGHT>);
    static get schema(): z.ZodEffects<z.ZodObject<{
        index: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
        leafPreimage: z.ZodEffects<z.ZodObject<{
            nullifier: z.ZodType<Fr, any, string>;
            nextNullifier: z.ZodType<Fr, any, string>;
            nextIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
        }, "strip", z.ZodTypeAny, {
            nullifier: Fr;
            nextNullifier: Fr;
            nextIndex: bigint;
        }, {
            nullifier: string;
            nextNullifier: string;
            nextIndex: string | number | bigint;
        }>, NullifierLeafPreimage, {
            nullifier: string;
            nextNullifier: string;
            nextIndex: string | number | bigint;
        }>;
        siblingPath: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
            type: z.ZodLiteral<"Buffer">;
            data: z.ZodArray<z.ZodNumber, "many">;
        }, "strip", z.ZodTypeAny, {
            type: "Buffer";
            data: number[];
        }, {
            type: "Buffer";
            data: number[];
        }>, Buffer, {
            type: "Buffer";
            data: number[];
        }>]>, SiblingPath<40>, string | {
            type: "Buffer";
            data: number[];
        }>, SiblingPath<40>, string | {
            type: "Buffer";
            data: number[];
        }>;
    }, "strip", z.ZodTypeAny, {
        index: bigint;
        leafPreimage: NullifierLeafPreimage;
        siblingPath: SiblingPath<40>;
    }, {
        index: string | number | bigint;
        leafPreimage: {
            nullifier: string;
            nextNullifier: string;
            nextIndex: string | number | bigint;
        };
        siblingPath: string | {
            type: "Buffer";
            data: number[];
        };
    }>, NullifierMembershipWitness, {
        index: string | number | bigint;
        leafPreimage: {
            nullifier: string;
            nextNullifier: string;
            nextIndex: string | number | bigint;
        };
        siblingPath: string | {
            type: "Buffer";
            data: number[];
        };
    }>;
    static random(): NullifierMembershipWitness;
    /**
     * Returns a field array representation of a nullifier witness.
     * @returns A field array representation of a nullifier witness.
     */
    toFields(): Fr[];
}
//# sourceMappingURL=nullifier_tree.d.ts.map