/// <reference types="node" />
import { BaseCommand } from '../../base_command';
import { CommandExecuteContext, CommandVerifyContext, VerificationResult } from '../../../state_machine';
import { TokenMethod } from '../method';
import { InteroperabilityMethod } from '../types';
import { InternalMethod } from '../internal_method';
interface Params {
    tokenID: Buffer;
    amount: bigint;
    receivingChainID: Buffer;
    recipientAddress: Buffer;
    data: string;
    messageFee: bigint;
    messageFeeTokenID: Buffer;
}
export declare class TransferCrossChainCommand extends BaseCommand {
    schema: {
        $id: string;
        type: string;
        required: string[];
        properties: {
            tokenID: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            amount: {
                dataType: string;
                fieldNumber: number;
            };
            receivingChainID: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            recipientAddress: {
                dataType: string;
                fieldNumber: number;
                format: string;
            };
            data: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            messageFee: {
                dataType: string;
                fieldNumber: number;
            };
            messageFeeTokenID: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
        };
    };
    private _moduleName;
    private _method;
    private _interoperabilityMethod;
    private _internalMethod;
    init(args: {
        moduleName: string;
        method: TokenMethod;
        interoperabilityMethod: InteroperabilityMethod;
        internalMethod: InternalMethod;
    }): void;
    verify(context: CommandVerifyContext<Params>): Promise<VerificationResult>;
    execute(context: CommandExecuteContext<Params>): Promise<void>;
}
export {};
