import { type CompiledContractConfig, Contract, type ContractOptions, type ResultOfCall } from 'vasku';
import { type KeyPair, type ResultOfProcessMessage } from '@eversdk/core';
type supportsInterfaceIn = {
    answerId: string | number | bigint;
    interfaceID: string | number | bigint;
};
type supportsInterfaceOut = {
    value0: string;
};
type platformCodeIn = {
    answerId: string | number | bigint;
};
type platformCodeOut = {
    value0: string;
};
type onDeployRetryIn = {
    value0: string;
    value1: string | number | bigint;
    sender: string;
    remainingGasTo: string;
};
type versionIn = {
    answerId: string | number | bigint;
};
type versionOut = {
    value0: string;
};
type upgradeIn = {
    remainingGasTo: string;
};
type acceptUpgradeIn = {
    newCode: string;
    newVersion: string | number | bigint;
    remainingGasTo: string;
};
type burnByRootIn = {
    amount: string | number | bigint;
    remainingGasTo: string;
    callbackTo: string;
    payload: string;
};
type destroyIn = {
    remainingGasTo: string;
};
type burnIn = {
    amount: string | number | bigint;
    remainingGasTo: string;
    callbackTo: string;
    payload: string;
};
type balanceIn = {
    answerId: string | number | bigint;
};
type balanceOut = {
    value0: string;
};
type ownerIn = {
    answerId: string | number | bigint;
};
type ownerOut = {
    value0: string;
};
type rootIn = {
    answerId: string | number | bigint;
};
type rootOut = {
    value0: string;
};
type walletCodeIn = {
    answerId: string | number | bigint;
};
type walletCodeOut = {
    value0: string;
};
type transferIn = {
    amount: string | number | bigint;
    recipient: string;
    deployWalletValue: string | number | bigint;
    remainingGasTo: string;
    notify: boolean;
    payload: string;
};
type transferToWalletIn = {
    amount: string | number | bigint;
    recipientTokenWallet: string;
    remainingGasTo: string;
    notify: boolean;
    payload: string;
};
type acceptTransferIn = {
    amount: string | number | bigint;
    sender: string;
    remainingGasTo: string;
    notify: boolean;
    payload: string;
};
type acceptMintIn = {
    amount: string | number | bigint;
    remainingGasTo: string;
    notify: boolean;
    payload: string;
};
type sendSurplusGasIn = {
    to: string;
};
export declare class TokenWalletUpgradeable extends Contract {
    private readonly _call;
    private readonly _run;
    private readonly _payload;
    constructor(config?: CompiledContractConfig, options?: ContractOptions);
    deploy(value: string | number | bigint, useGiver?: boolean, timeout?: number): Promise<ResultOfProcessMessage>;
    get call(): TokenWalletUpgradeableCalls;
    get run(): TokenWalletUpgradeableRuns;
    get payload(): TokenWalletUpgradeablePayload;
}
declare class TokenWalletUpgradeableCalls {
    private readonly contract;
    constructor(contract: Contract);
    supportsInterface(input: supportsInterfaceIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: supportsInterfaceOut;
    }>;
    platformCode(input: platformCodeIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: platformCodeOut;
    }>;
    onDeployRetry(input: onDeployRetryIn, keys?: KeyPair): Promise<ResultOfCall>;
    version(input: versionIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: versionOut;
    }>;
    upgrade(input: upgradeIn, keys?: KeyPair): Promise<ResultOfCall>;
    acceptUpgrade(input: acceptUpgradeIn, keys?: KeyPair): Promise<ResultOfCall>;
    burnByRoot(input: burnByRootIn, keys?: KeyPair): Promise<ResultOfCall>;
    destroy(input: destroyIn, keys?: KeyPair): Promise<ResultOfCall>;
    burn(input: burnIn, keys?: KeyPair): Promise<ResultOfCall>;
    balance(input: balanceIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: balanceOut;
    }>;
    owner(input: ownerIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: ownerOut;
    }>;
    root(input: rootIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: rootOut;
    }>;
    walletCode(input: walletCodeIn, keys?: KeyPair): Promise<ResultOfCall & {
        out: walletCodeOut;
    }>;
    transfer(input: transferIn, keys?: KeyPair): Promise<ResultOfCall>;
    transferToWallet(input: transferToWalletIn, keys?: KeyPair): Promise<ResultOfCall>;
    acceptTransfer(input: acceptTransferIn, keys?: KeyPair): Promise<ResultOfCall>;
    acceptMint(input: acceptMintIn, keys?: KeyPair): Promise<ResultOfCall>;
    sendSurplusGas(input: sendSurplusGasIn, keys?: KeyPair): Promise<ResultOfCall>;
}
declare class TokenWalletUpgradeableRuns {
    private readonly contract;
    constructor(contract: Contract);
    supportsInterface(input: supportsInterfaceIn): Promise<supportsInterfaceOut>;
    platformCode(input: platformCodeIn): Promise<platformCodeOut>;
    version(input: versionIn): Promise<versionOut>;
    balance(input: balanceIn): Promise<balanceOut>;
    owner(input: ownerIn): Promise<ownerOut>;
    root(input: rootIn): Promise<rootOut>;
    walletCode(input: walletCodeIn): Promise<walletCodeOut>;
}
declare class TokenWalletUpgradeablePayload {
    private readonly contract;
    constructor(contract: Contract);
    supportsInterface(input: supportsInterfaceIn): Promise<string>;
    platformCode(input: platformCodeIn): Promise<string>;
    onDeployRetry(input: onDeployRetryIn): Promise<string>;
    version(input: versionIn): Promise<string>;
    upgrade(input: upgradeIn): Promise<string>;
    acceptUpgrade(input: acceptUpgradeIn): Promise<string>;
    burnByRoot(input: burnByRootIn): Promise<string>;
    destroy(input: destroyIn): Promise<string>;
    burn(input: burnIn): Promise<string>;
    balance(input: balanceIn): Promise<string>;
    owner(input: ownerIn): Promise<string>;
    root(input: rootIn): Promise<string>;
    walletCode(input: walletCodeIn): Promise<string>;
    transfer(input: transferIn): Promise<string>;
    transferToWallet(input: transferToWalletIn): Promise<string>;
    acceptTransfer(input: acceptTransferIn): Promise<string>;
    acceptMint(input: acceptMintIn): Promise<string>;
    sendSurplusGas(input: sendSurplusGasIn): Promise<string>;
}
export {};
//# sourceMappingURL=TokenWalletUpgradeable.d.ts.map