import { PublicKey, UInt64, UInt32, TokenId, Field, AuthRequired, BalanceChange, Sign, Bool } from '../../v1/transaction-leaves-json.js';
export { ZkappCommand, AccountUpdate, Account };
export * from '../../v1/transaction-leaves-json.js';
export { TypeMap };
type TypeMap = {
    PublicKey: PublicKey;
    UInt64: UInt64;
    UInt32: UInt32;
    TokenId: TokenId;
    Field: Field;
    AuthRequired: AuthRequired;
    BalanceChange: BalanceChange;
    Sign: Sign;
    Bool: Bool;
};
type ZkappCommand = {
    feePayer: {
        body: {
            publicKey: PublicKey;
            fee: UInt64;
            validUntil: (UInt32 | null);
            nonce: UInt32;
        };
        authorization: string;
    };
    accountUpdates: {
        body: {
            publicKey: PublicKey;
            tokenId: TokenId;
            update: {
                appState: (Field | null)[];
                delegate: (PublicKey | null);
                verificationKey: ({
                    data: string;
                    hash: Field;
                } | null);
                permissions: ({
                    editState: AuthRequired;
                    access: AuthRequired;
                    send: AuthRequired;
                    receive: AuthRequired;
                    setDelegate: AuthRequired;
                    setPermissions: AuthRequired;
                    setVerificationKey: {
                        auth: AuthRequired;
                        txnVersion: UInt32;
                    };
                    setZkappUri: AuthRequired;
                    editActionState: AuthRequired;
                    setTokenSymbol: AuthRequired;
                    incrementNonce: AuthRequired;
                    setVotingFor: AuthRequired;
                    setTiming: AuthRequired;
                } | null);
                zkappUri: (string | null);
                tokenSymbol: (string | null);
                timing: ({
                    initialMinimumBalance: UInt64;
                    cliffTime: UInt32;
                    cliffAmount: UInt64;
                    vestingPeriod: UInt32;
                    vestingIncrement: UInt64;
                } | null);
                votingFor: (Field | null);
            };
            balanceChange: {
                magnitude: UInt64;
                sgn: Sign;
            };
            incrementNonce: Bool;
            events: Field[][];
            actions: Field[][];
            callData: Field;
            callDepth: number;
            preconditions: {
                network: {
                    snarkedLedgerHash: (Field | null);
                    blockchainLength: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                    minWindowDensity: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                    totalCurrency: ({
                        lower: UInt64;
                        upper: UInt64;
                    } | null);
                    globalSlotSinceGenesis: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                    stakingEpochData: {
                        ledger: {
                            hash: (Field | null);
                            totalCurrency: ({
                                lower: UInt64;
                                upper: UInt64;
                            } | null);
                        };
                        seed: (Field | null);
                        startCheckpoint: (Field | null);
                        lockCheckpoint: (Field | null);
                        epochLength: ({
                            lower: UInt32;
                            upper: UInt32;
                        } | null);
                    };
                    nextEpochData: {
                        ledger: {
                            hash: (Field | null);
                            totalCurrency: ({
                                lower: UInt64;
                                upper: UInt64;
                            } | null);
                        };
                        seed: (Field | null);
                        startCheckpoint: (Field | null);
                        lockCheckpoint: (Field | null);
                        epochLength: ({
                            lower: UInt32;
                            upper: UInt32;
                        } | null);
                    };
                };
                account: {
                    balance: ({
                        lower: UInt64;
                        upper: UInt64;
                    } | null);
                    nonce: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                    receiptChainHash: (Field | null);
                    delegate: (PublicKey | null);
                    state: (Field | null)[];
                    actionState: (Field | null);
                    provedState: (Bool | null);
                    isNew: (Bool | null);
                };
                validWhile: ({
                    lower: UInt32;
                    upper: UInt32;
                } | null);
            };
            useFullCommitment: Bool;
            implicitAccountCreationFee: Bool;
            mayUseToken: {
                parentsOwnToken: Bool;
                inheritFromParent: Bool;
            };
            authorizationKind: {
                isSigned: Bool;
                isProved: Bool;
                verificationKeyHash: Field;
            };
        };
        authorization: {
            proof: (string | null);
            signature: (string | null);
        };
    }[];
    memo: string;
};
type AccountUpdate = {
    body: {
        publicKey: PublicKey;
        tokenId: TokenId;
        update: {
            appState: (Field | null)[];
            delegate: (PublicKey | null);
            verificationKey: ({
                data: string;
                hash: Field;
            } | null);
            permissions: ({
                editState: AuthRequired;
                access: AuthRequired;
                send: AuthRequired;
                receive: AuthRequired;
                setDelegate: AuthRequired;
                setPermissions: AuthRequired;
                setVerificationKey: {
                    auth: AuthRequired;
                    txnVersion: UInt32;
                };
                setZkappUri: AuthRequired;
                editActionState: AuthRequired;
                setTokenSymbol: AuthRequired;
                incrementNonce: AuthRequired;
                setVotingFor: AuthRequired;
                setTiming: AuthRequired;
            } | null);
            zkappUri: (string | null);
            tokenSymbol: (string | null);
            timing: ({
                initialMinimumBalance: UInt64;
                cliffTime: UInt32;
                cliffAmount: UInt64;
                vestingPeriod: UInt32;
                vestingIncrement: UInt64;
            } | null);
            votingFor: (Field | null);
        };
        balanceChange: {
            magnitude: UInt64;
            sgn: Sign;
        };
        incrementNonce: Bool;
        events: Field[][];
        actions: Field[][];
        callData: Field;
        callDepth: number;
        preconditions: {
            network: {
                snarkedLedgerHash: (Field | null);
                blockchainLength: ({
                    lower: UInt32;
                    upper: UInt32;
                } | null);
                minWindowDensity: ({
                    lower: UInt32;
                    upper: UInt32;
                } | null);
                totalCurrency: ({
                    lower: UInt64;
                    upper: UInt64;
                } | null);
                globalSlotSinceGenesis: ({
                    lower: UInt32;
                    upper: UInt32;
                } | null);
                stakingEpochData: {
                    ledger: {
                        hash: (Field | null);
                        totalCurrency: ({
                            lower: UInt64;
                            upper: UInt64;
                        } | null);
                    };
                    seed: (Field | null);
                    startCheckpoint: (Field | null);
                    lockCheckpoint: (Field | null);
                    epochLength: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                };
                nextEpochData: {
                    ledger: {
                        hash: (Field | null);
                        totalCurrency: ({
                            lower: UInt64;
                            upper: UInt64;
                        } | null);
                    };
                    seed: (Field | null);
                    startCheckpoint: (Field | null);
                    lockCheckpoint: (Field | null);
                    epochLength: ({
                        lower: UInt32;
                        upper: UInt32;
                    } | null);
                };
            };
            account: {
                balance: ({
                    lower: UInt64;
                    upper: UInt64;
                } | null);
                nonce: ({
                    lower: UInt32;
                    upper: UInt32;
                } | null);
                receiptChainHash: (Field | null);
                delegate: (PublicKey | null);
                state: (Field | null)[];
                actionState: (Field | null);
                provedState: (Bool | null);
                isNew: (Bool | null);
            };
            validWhile: ({
                lower: UInt32;
                upper: UInt32;
            } | null);
        };
        useFullCommitment: Bool;
        implicitAccountCreationFee: Bool;
        mayUseToken: {
            parentsOwnToken: Bool;
            inheritFromParent: Bool;
        };
        authorizationKind: {
            isSigned: Bool;
            isProved: Bool;
            verificationKeyHash: Field;
        };
    };
    authorization: {
        proof: (string | null);
        signature: (string | null);
    };
};
type Account = {
    publicKey: PublicKey;
    tokenId: TokenId;
    tokenSymbol: string;
    balance: UInt64;
    nonce: UInt32;
    receiptChainHash: Field;
    delegate: (PublicKey | null);
    votingFor: Field;
    timing: {
        isTimed: Bool;
        initialMinimumBalance: UInt64;
        cliffTime: UInt32;
        cliffAmount: UInt64;
        vestingPeriod: UInt32;
        vestingIncrement: UInt64;
    };
    permissions: {
        editState: AuthRequired;
        access: AuthRequired;
        send: AuthRequired;
        receive: AuthRequired;
        setDelegate: AuthRequired;
        setPermissions: AuthRequired;
        setVerificationKey: {
            auth: AuthRequired;
            txnVersion: UInt32;
        };
        setZkappUri: AuthRequired;
        editActionState: AuthRequired;
        setTokenSymbol: AuthRequired;
        incrementNonce: AuthRequired;
        setVotingFor: AuthRequired;
        setTiming: AuthRequired;
    };
    zkapp: ({
        appState: Field[];
        verificationKey: ({
            data: string;
            hash: Field;
        } | null);
        zkappVersion: UInt32;
        actionState: Field[];
        lastActionSlot: UInt32;
        provedState: Bool;
        zkappUri: string;
    } | null);
};
