import { TransferCommand } from './commands/transfer';
import { ModuleInitArgs, ModuleMetadata } from '../base_module';
import { GenesisBlockExecuteContext } from '../../state_machine';
import { TokenMethod } from './method';
import { TokenEndpoint } from './endpoint';
import { FeeMethod, InteroperabilityMethod } from './types';
import { BaseInteroperableModule } from '../interoperability/base_interoperable_module';
import { TokenInteroperableMethod } from './cc_method';
import { CrossChainTransferCommand as CrossChainTransferMessageCommand } from './cc_commands/cc_transfer';
import { TransferCrossChainCommand } from './commands/transfer_cross_chain';
export declare class TokenModule extends BaseInteroperableModule {
    method: TokenMethod;
    endpoint: TokenEndpoint;
    crossChainMethod: TokenInteroperableMethod;
    crossChainTransferCommand: CrossChainTransferMessageCommand;
    crossChainCommand: CrossChainTransferMessageCommand[];
    private readonly _transferCommand;
    private readonly _ccTransferCommand;
    private readonly _internalMethod;
    private _interoperabilityMethod;
    commands: (TransferCommand | TransferCrossChainCommand)[];
    constructor();
    addDependencies(interoperabilityMethod: InteroperabilityMethod, feeMethod: FeeMethod): void;
    metadata(): ModuleMetadata;
    init(args: ModuleInitArgs): Promise<void>;
    initGenesisState(context: GenesisBlockExecuteContext): Promise<void>;
}
