/// import { CommandExecuteContext, CommandVerifyContext } from '../../state_machine'; import { BaseInteroperabilityCommand } from './base_interoperability_command'; import { BaseInteroperabilityInternalMethod } from './base_interoperability_internal_methods'; import { BaseInteroperabilityMethod } from './base_interoperability_method'; import { CCMStatusCode } from './constants'; import { CCMProcessedCode } from './events/ccm_processed'; import { CCMsg, CrossChainMessageContext, CrossChainUpdateTransactionParams, TokenMethod } from './types'; export declare abstract class BaseCrossChainUpdateCommand extends BaseInteroperabilityCommand { schema: { $id: string; type: string; required: string[]; properties: { sendingChainID: { dataType: string; fieldNumber: number; minLength: number; maxLength: number; }; certificate: { dataType: string; fieldNumber: number; }; activeValidatorsUpdate: { type: string; fieldNumber: number; required: string[]; properties: { blsKeysUpdate: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; bftWeightsUpdate: { type: string; fieldNumber: number; items: { dataType: string; }; }; bftWeightsUpdateBitmap: { dataType: string; fieldNumber: number; }; }; }; certificateThreshold: { dataType: string; fieldNumber: number; }; inboxUpdate: { type: string; fieldNumber: number; required: string[]; properties: { crossChainMessages: { type: string; fieldNumber: number; items: { dataType: string; }; }; messageWitnessHashes: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; outboxRootWitness: { type: string; fieldNumber: number; required: string[]; properties: { bitmap: { dataType: string; fieldNumber: number; }; siblingHashes: { type: string; fieldNumber: number; items: { dataType: string; minLength: number; maxLength: number; }; }; }; }; }; }; }; }; protected _tokenMethod: TokenMethod; protected _interopsMethod: BaseInteroperabilityMethod; init(interopsMethod: BaseInteroperabilityMethod, tokenMethod: TokenMethod): void; protected verifyCommon(context: CommandVerifyContext, isMainchain: boolean): Promise; protected beforeCrossChainMessagesExecution(context: CommandExecuteContext, isMainchain: boolean): Promise<[CCMsg[], boolean]>; protected verifyRoutingRules(ccm: CCMsg, ccuParams: CrossChainUpdateTransactionParams, ownChainID: Buffer, isMainchain: boolean): void; protected afterCrossChainMessagesExecute(context: CommandExecuteContext): Promise; private _beforeCrossChainCommandExecute; private _afterCrossChainCommandExecute; protected apply(context: CrossChainMessageContext): Promise; protected bounce(context: CrossChainMessageContext, ccmSize: number, ccmStatusCode: CCMStatusCode, ccmProcessedCode: CCMProcessedCode): Promise; protected verifyCCM(context: CrossChainMessageContext, ccmID: Buffer): Promise; protected verifyCertificateSignatureAndPartnerChainOutboxRoot(context: CommandExecuteContext): Promise; }