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;
};
