import { Bool, Field, PublicKey } from 'o1js';
import { ProofGenerators } from './proofGenerators.js';
export { PulsarAction, Batch };
declare const PulsarAction_base: (new (value: {
    type: import("o1js/dist/node/lib/provable/field.js").Field;
    account: PublicKey;
    amount: import("o1js/dist/node/lib/provable/field.js").Field;
    initialState: import("o1js/dist/node/lib/provable/field.js").Field;
    newState: import("o1js/dist/node/lib/provable/field.js").Field;
    initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
}) => {
    type: import("o1js/dist/node/lib/provable/field.js").Field;
    account: PublicKey;
    amount: import("o1js/dist/node/lib/provable/field.js").Field;
    initialState: import("o1js/dist/node/lib/provable/field.js").Field;
    newState: import("o1js/dist/node/lib/provable/field.js").Field;
    initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
}) & {
    _isStruct: true;
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    type: import("o1js/dist/node/lib/provable/field.js").Field;
    account: PublicKey;
    amount: import("o1js/dist/node/lib/provable/field.js").Field;
    initialState: import("o1js/dist/node/lib/provable/field.js").Field;
    newState: import("o1js/dist/node/lib/provable/field.js").Field;
    initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
    initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
    rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
}, {
    type: bigint;
    account: {
        x: bigint;
        isOdd: boolean;
    };
    amount: bigint;
    initialState: bigint;
    newState: bigint;
    initialMerkleListRoot: bigint;
    newMerkleListRoot: bigint;
    initialBlockHeight: bigint;
    newBlockHeight: bigint;
    rewardListUpdateHash: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    };
} & {
    fromValue: (value: {
        type: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey | {
            x: Field | bigint;
            isOdd: Bool | boolean;
        };
        amount: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        newState: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    };
    toInput: (x: {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        type: string;
        account: string;
        amount: string;
        initialState: string;
        newState: string;
        initialMerkleListRoot: string;
        newMerkleListRoot: string;
        initialBlockHeight: string;
        newBlockHeight: string;
        rewardListUpdateHash: string;
    };
    fromJSON: (x: {
        type: string;
        account: string;
        amount: string;
        initialState: string;
        newState: string;
        initialMerkleListRoot: string;
        newMerkleListRoot: string;
        initialBlockHeight: string;
        newBlockHeight: string;
        rewardListUpdateHash: string;
    }) => {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    };
    empty: () => {
        type: import("o1js/dist/node/lib/provable/field.js").Field;
        account: PublicKey;
        amount: import("o1js/dist/node/lib/provable/field.js").Field;
        initialState: import("o1js/dist/node/lib/provable/field.js").Field;
        newState: import("o1js/dist/node/lib/provable/field.js").Field;
        initialMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        newMerkleListRoot: import("o1js/dist/node/lib/provable/field.js").Field;
        initialBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        newBlockHeight: import("o1js/dist/node/lib/provable/field.js").Field;
        rewardListUpdateHash: import("o1js/dist/node/lib/provable/field.js").Field;
    };
};
declare class PulsarAction extends PulsarAction_base {
    static settlement(initialState: Field, newState: Field, initialMerkleListRoot: Field, newMerkleListRoot: Field, initialBlockHeight: Field, newBlockHeight: Field, rewardListUpdate: ProofGenerators): PulsarAction;
    static deposit(account: PublicKey, amount: Field): PulsarAction;
    static withdrawal(account: PublicKey, amount: Field): PulsarAction;
    static isDummy(action: PulsarAction): Bool;
    static isSettlement(action: PulsarAction): Bool;
    static isDeposit(action: PulsarAction): Bool;
    static isWithdrawal(action: PulsarAction): Bool;
    unconstrainedHash(): import("o1js/dist/node/lib/provable/field.js").Field;
    static fromRawAction(rawAction: string[]): PulsarAction;
    toJSON(): {
        type: string;
        account: string;
        amount: string;
        initialState: string;
        newState: string;
        initialMerkleListRoot: string;
        newMerkleListRoot: string;
        initialBlockHeight: string;
        newBlockHeight: string;
        rewardListUpdateHash: string;
    };
}
declare const Batch_base: (new (value: {
    actions: PulsarAction[];
}) => {
    actions: PulsarAction[];
}) & {
    _isStruct: true;
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    actions: PulsarAction[];
}, {
    actions: {
        type: bigint;
        account: {
            x: bigint;
            isOdd: boolean;
        };
        amount: bigint;
        initialState: bigint;
        newState: bigint;
        initialMerkleListRoot: bigint;
        newMerkleListRoot: bigint;
        initialBlockHeight: bigint;
        newBlockHeight: bigint;
        rewardListUpdateHash: bigint;
    }[];
}>, "fromFields"> & {
    fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => {
        actions: PulsarAction[];
    };
} & {
    fromValue: (value: {
        actions: PulsarAction[] | {
            type: bigint;
            account: {
                x: bigint;
                isOdd: boolean;
            };
            amount: bigint;
            initialState: bigint;
            newState: bigint;
            initialMerkleListRoot: bigint;
            newMerkleListRoot: bigint;
            initialBlockHeight: bigint;
            newBlockHeight: bigint;
            rewardListUpdateHash: bigint;
        }[];
    }) => {
        actions: PulsarAction[];
    };
    toInput: (x: {
        actions: PulsarAction[];
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        actions: PulsarAction[];
    }) => {
        actions: {
            type: string;
            account: string;
            amount: string;
            initialState: string;
            newState: string;
            initialMerkleListRoot: string;
            newMerkleListRoot: string;
            initialBlockHeight: string;
            newBlockHeight: string;
            rewardListUpdateHash: string;
        }[];
    };
    fromJSON: (x: {
        actions: {
            type: string;
            account: string;
            amount: string;
            initialState: string;
            newState: string;
            initialMerkleListRoot: string;
            newMerkleListRoot: string;
            initialBlockHeight: string;
            newBlockHeight: string;
            rewardListUpdateHash: string;
        }[];
    }) => {
        actions: PulsarAction[];
    };
    empty: () => {
        actions: PulsarAction[];
    };
};
declare class Batch extends Batch_base {
    static empty(): Batch;
    static fromArray(actions: PulsarAction[]): Batch;
}
