///
import { BaseMethod } from '../base_method';
import { BaseCCMethod } from './base_cc_method';
import { NamedRegistry } from '../named_registry';
import { ImmutableMethodContext, MethodContext } from '../../state_machine';
import { ChainAccount } from './stores/chain_account';
import { CCMsg } from './types';
import { BaseInteroperabilityInternalMethod } from './base_interoperability_internal_methods';
import { TokenMethod } from '../token';
export declare abstract class BaseInteroperabilityMethod extends BaseMethod {
protected readonly interoperableCCMethods: Map;
protected internalMethod: T;
protected _tokenMethod: TokenMethod & {
payMessageFee: (context: MethodContext, payFromAddress: Buffer, fee: bigint, receivingChainID: Buffer) => Promise;
};
constructor(stores: NamedRegistry, events: NamedRegistry, interoperableCCMethods: Map, internalMethod: T);
addDependencies(tokenMethod: TokenMethod & {
payMessageFee: (context: MethodContext, payFromAddress: Buffer, fee: bigint, receivingChainID: Buffer) => Promise;
}): void;
getChainAccount(context: ImmutableMethodContext, chainID: Buffer): Promise;
getChannel(context: ImmutableMethodContext, chainID: Buffer): Promise;
getOwnChainAccount(context: ImmutableMethodContext): Promise;
getTerminatedStateAccount(context: ImmutableMethodContext, chainID: Buffer): Promise;
getTerminatedOutboxAccount(context: ImmutableMethodContext, chainID: Buffer): Promise;
private _getChannelCommon;
getMessageFeeTokenID(context: ImmutableMethodContext, chainID: Buffer): Promise;
getMessageFeeTokenIDFromCCM(context: ImmutableMethodContext, ccm: CCMsg): Promise;
getMinReturnFeePerByte(context: ImmutableMethodContext, chainID: Buffer): Promise;
send(context: MethodContext, sendingAddress: Buffer, module: string, crossChainCommand: string, receivingChainID: Buffer, fee: bigint, params: Buffer, timestamp?: number): Promise;
error(context: MethodContext, ccm: CCMsg, errorStatus: number): Promise;
terminateChain(context: MethodContext, chainID: Buffer): Promise;
}