import { ModuleInitArgs, ModuleMetadata } from '../base_module'; import { InteroperabilityMethod, TokenMethod } from './types'; import { TransactionExecuteContext, TransactionVerifyContext, VerificationResult } from '../../state_machine'; import { FeeMethod } from './method'; import { FeeEndpoint } from './endpoint'; import { FeeInteroperableMethod } from './cc_method'; import { BaseInteroperableModule } from '../interoperability/base_interoperable_module'; export declare class FeeModule extends BaseInteroperableModule { method: FeeMethod; crossChainMethod: FeeInteroperableMethod; configSchema: { $id: string; type: string; properties: { feeTokenID: { type: string; format: string; }; minFeePerByte: { type: string; format: string; }; maxBlockHeightZeroFeePerByte: { type: string; format: string; }; feePoolAddress: { type: string; format: string; }; }; required: string[]; }; endpoint: FeeEndpoint; private _tokenMethod; private _minFeePerByte; private _maxBlockHeightZeroFeePerByte; private _tokenID; private _feePoolAddress?; constructor(); addDependencies(tokenMethod: TokenMethod, interopMethod: InteroperabilityMethod): void; metadata(): ModuleMetadata; init(args: ModuleInitArgs): Promise; verifyTransaction(context: TransactionVerifyContext): Promise; beforeCommandExecute(context: TransactionExecuteContext): Promise; afterCommandExecute(context: TransactionExecuteContext): Promise; _getMinFee(blockHeight: number, transactionByteLength: number): bigint; }