import { type Address, type DelayedMessageExecution, type FullContractState, type ProviderRpcClient, type SendInternalParams } from 'everscale-inpage-provider';
export interface VaultTokenOwnerAbiParams {
    ownerAddress: Address | string;
    tokenAddress: Address | string;
}
export interface VaultTokenWalletAddressAbiParams {
    walletAddress: Address | string;
}
export interface VaultTokenWalletAcceptNativeAbiParams {
    amount: string | number;
    deployWalletValue?: string | number;
    payload?: string;
    remainingGasTo: Address | string;
}
export interface VaultTokenWalletTransferAbiParams {
    amount: string | number;
    deployWalletValue?: string | number;
    notify?: boolean;
    payload?: string;
    recipient: Address | string;
    remainingGasTo: Address | string;
}
export interface VaultTokenWalletTransferToWalletAbiParams {
    amount: string | number;
    notify?: boolean;
    payload?: string;
    recipientTokenWallet: Address | string;
    remainingGasTo: Address | string;
}
export interface VaultTokenWalletBurnAbiParams {
    amount: string | number;
    callbackTo: Address | string;
    payload?: string;
    remainingGasTo: Address | string;
}
export interface VaultTokenWalletDestroyAbiParams {
    remainingGasTo: Address | string;
}
export declare abstract class VaultTokenWalletUtils {
    /**
     * Accept native - makes the transaction via token wallet contract to send message
     * @param {ProviderRpcClient} provider
     * @param {Address | string} tokenWalletAddress
     * @param {VaultTokenWalletAcceptNativeAbiParams} params
     * @param {Partial<SendInternalParams>} [args]
     */
    static acceptNative(provider: ProviderRpcClient, tokenWalletAddress: Address | string, params: VaultTokenWalletAcceptNativeAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    /**
     * Transfer - makes the transaction via token wallet contract to send message
     * @param {ProviderRpcClient} provider
     * @param {Address | string} tokenWalletAddress
     * @param {VaultTokenWalletTransferAbiParams} params
     * @param {Partial<SendInternalParams>} [args]
     */
    static transfer(provider: ProviderRpcClient, tokenWalletAddress: Address | string, params: VaultTokenWalletTransferAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    /**
     * Transfer to wallet - makes the transaction via token wallet contract to send message to a
     * token wallet
     * @param {ProviderRpcClient} provider
     * @param {Address | string} tokenWalletAddress
     * @param {VaultTokenWalletTransferToWalletAbiParams} params
     * @param {Partial<SendInternalParams>} [args]
     */
    static transferToWallet(provider: ProviderRpcClient, tokenWalletAddress: Address | string, params: VaultTokenWalletTransferToWalletAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    /**
     * Burns assets in favor of the address specified in callbackTo
     * @param {ProviderRpcClient} provider
     * @param {Address | string} tokenWalletAddress
     * @param {VaultTokenWalletBurnAbiParams} params
     * @param {Partial<SendInternalParams>} [args]
     */
    static burn(provider: ProviderRpcClient, tokenWalletAddress: Address | string, params: VaultTokenWalletBurnAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    /**
     * Destroy wallet
     * @param {ProviderRpcClient} provider
     * @param {Address | string} tokenWalletAddress
     * @param {VaultTokenWalletDestroyAbiParams} params
     * @param {Partial<SendInternalParams>} [args]
     */
    static destroy(provider: ProviderRpcClient, tokenWalletAddress: Address | string, params: VaultTokenWalletDestroyAbiParams, args?: Partial<SendInternalParams>): Promise<DelayedMessageExecution>;
    /**
     * Returns token wallet balance in this token by the given token root address and owner wallet
     * address.
     * @param {ProviderRpcClient} connection
     * @param {VaultTokenOwnerAbiParams} params
     * @param {FullContractState} [cachedState]
     */
    static balance(connection: ProviderRpcClient, params: VaultTokenOwnerAbiParams, cachedState?: FullContractState): Promise<string | undefined>;
    /**
     * Returns token wallet balance in this token by the given owner token wallet address.
     * @param {ProviderRpcClient} connection
     * @param {VaultTokenWalletAddressAbiParams} params
     * @param {FullContractState} [cachedState]
     */
    static balance(connection: ProviderRpcClient, params: VaultTokenWalletAddressAbiParams, cachedState?: FullContractState): Promise<string | undefined>;
    static owner(connection: ProviderRpcClient, tokenWalletAddress: Address | string, cachedState?: FullContractState): Promise<Address | undefined>;
    static root(connection: ProviderRpcClient, tokenWalletAddress: Address | string, cachedState?: FullContractState): Promise<Address | undefined>;
}
