///
import { CCMsg, CrossChainUpdateTransactionParams, ChainValidators } from './types';
import { NamedRegistry } from '../named_registry';
import { TerminatedOutboxAccount } from './stores/terminated_outbox';
import { BaseInternalMethod } from '../BaseInternalMethod';
import { MethodContext, ImmutableMethodContext, CommandExecuteContext } from '../../state_machine';
import { TokenMethod } from '../token';
import { BaseCCMethod } from './base_cc_method';
export declare abstract class BaseInteroperabilityInternalMethod extends BaseInternalMethod {
protected readonly interoperableModuleMethods: Map;
protected _tokenMethod: TokenMethod;
constructor(stores: NamedRegistry, events: NamedRegistry, interoperableModuleMethods: Map);
addDependencies(tokenMethod: TokenMethod): void;
appendToInboxTree(context: MethodContext, chainID: Buffer, appendData: Buffer): Promise;
appendToOutboxTree(context: MethodContext, chainID: Buffer, appendData: Buffer): Promise;
addToOutbox(context: MethodContext, chainID: Buffer, ccm: CCMsg): Promise;
createTerminatedOutboxAccount(context: MethodContext, chainID: Buffer, outboxRoot: Buffer, outboxSize: number, partnerChainInboxSize: number): Promise;
setTerminatedOutboxAccount(context: MethodContext, chainID: Buffer, params: Partial): Promise;
createTerminatedStateAccount(context: MethodContext, chainID: Buffer, stateRoot?: Buffer): Promise;
terminateChainInternal(context: MethodContext, chainID: Buffer): Promise;
updateValidators(context: MethodContext, ccu: CrossChainUpdateTransactionParams): Promise;
updateCertificate(context: MethodContext, ccu: CrossChainUpdateTransactionParams): Promise;
updatePartnerChainOutboxRoot(context: MethodContext, ccu: CrossChainUpdateTransactionParams): Promise;
verifyValidatorsUpdate(context: ImmutableMethodContext, ccu: CrossChainUpdateTransactionParams): Promise;
verifyCertificate(context: ImmutableMethodContext, params: CrossChainUpdateTransactionParams, blockTimestamp: number): Promise;
verifyCertificateSignature(context: MethodContext, params: CrossChainUpdateTransactionParams): Promise;
sendInternal(context: MethodContext, sendingAddress: Buffer, module: string, crossChainCommand: string, receivingChainID: Buffer, fee: bigint, status: number, params: Buffer, timestamp?: number): Promise;
getChainValidators(context: ImmutableMethodContext, chainID: Buffer): Promise;
verifyOutboxRootWitness(_context: ImmutableMethodContext, params: CrossChainUpdateTransactionParams): void;
verifyPartnerChainOutboxRoot(context: CommandExecuteContext, params: CrossChainUpdateTransactionParams): Promise;
abstract isLive(context: ImmutableMethodContext, chainID: Buffer, timestamp?: number): Promise;
}