import { Address, ContractState, TestContractResult, HexString, ContractFactory, SubscribeOptions, EventSubscription, CallContractParams, CallContractResult, TestContractParams, ContractEvent, ContractInstance } from "@alephium/web3"; export declare namespace GovernanceTypes { type Fields = { chainId: bigint; governanceChainId: bigint; governanceEmitterAddress: HexString; tokenBridgeFactory: HexString; receivedSequence: bigint; messageFee: bigint; guardianSets: [HexString, HexString]; guardianSetIndexes: [bigint, bigint]; previousGuardianSetExpirationTimeMS: bigint; }; type State = ContractState; type WormholeMessageEvent = ContractEvent<{ sender: HexString; targetChainId: bigint; sequence: bigint; nonce: HexString; payload: HexString; consistencyLevel: bigint; }>; interface CallMethodTable { getMessageFee: { params: Omit, "args">; result: CallContractResult; }; parseAndVerifyVAA: { params: CallContractParams<{ data: HexString; isGovernanceVAA: boolean; }>; result: CallContractResult<[ bigint, bigint, HexString, bigint, HexString ]>; }; parseAndVerifyGovernanceVAAGeneric: { params: CallContractParams<{ vaa: HexString; targetSequence: bigint; coreModule: bigint; action: HexString; }>; result: CallContractResult<[bigint, bigint, HexString]>; }; } type CallMethodParams = CallMethodTable[T]["params"]; type CallMethodResult = CallMethodTable[T]["result"]; type MultiCallParams = Partial<{ [Name in keyof CallMethodTable]: CallMethodTable[Name]["params"]; }>; type MultiCallResults = { [MaybeName in keyof T]: MaybeName extends keyof CallMethodTable ? CallMethodTable[MaybeName]["result"] : undefined; }; } declare class Factory extends ContractFactory { consts: { Version: string; GuardianSetExpireDuration: bigint; CoreModule: bigint; ErrorCodes: { InvalidEmitChainId: bigint; InvalidEmitAddress: bigint; InvalidMessageSize: bigint; InvalidSequence: bigint; InvalidModule: bigint; InvalidActionId: bigint; InvalidVersion: bigint; InvalidGuardianSetIndex: bigint; InvalidGuardianSetSize: bigint; InvalidSignatureSize: bigint; InvalidSignatureGuardianIndex: bigint; InvalidSignature: bigint; GuardianSetExpired: bigint; InvalidTargetChainId: bigint; ContractStateMismatch: bigint; InvalidRegisterChainMessage: bigint; InvalidTokenId: bigint; InvalidNonceSize: bigint; TokenNotExist: bigint; InvalidTransferTargetChain: bigint; InvalidDestroyUnexecutedSequenceMessage: bigint; InvalidCaller: bigint; ArbiterFeeLessThanAmount: bigint; InvalidAttestTokenMessage: bigint; InvalidPayloadId: bigint; InvalidTransferMessage: bigint; ExpectRemoteToken: bigint; InvalidConsistencyLevel: bigint; InvalidUpdateRefundAddressMessage: bigint; TransferAmountLessThanMessageFee: bigint; InvalidAttestTokenArg: bigint; InvalidAttestTokenHandler: bigint; NotSupported: bigint; }; ActionId: { ContractUpgrade: string; NewGuardianSet: string; NewMessageFee: string; TransferFee: string; }; }; at(address: string): GovernanceInstance; tests: { getMessageFee: (params: Omit, "testArgs">) => Promise>; publishWormholeMessage: (params: TestContractParams) => Promise>; parseAndVerifyVAA: (params: TestContractParams) => Promise>; parseAndVerifyGovernanceVAAGeneric: (params: TestContractParams) => Promise>; parseAndVerifyGovernanceVAA: (params: TestContractParams) => Promise>; getGuardiansInfo: (params: TestContractParams) => Promise>; submitContractUpgrade: (params: TestContractParams) => Promise>; updatePreviousGuardianSet: (params: Omit, "testArgs">) => Promise>; submitNewGuardianSet: (params: TestContractParams) => Promise>; submitSetMessageFee: (params: TestContractParams) => Promise>; submitTransferFees: (params: TestContractParams) => Promise>; }; } export declare const Governance: Factory; export declare class GovernanceInstance extends ContractInstance { constructor(address: Address); fetchState(): Promise; getContractEventsCurrentCount(): Promise; subscribeWormholeMessageEvent(options: SubscribeOptions, fromCount?: number): EventSubscription; methods: { getMessageFee: (params?: Omit, "args"> | undefined) => Promise>; parseAndVerifyVAA: (params: GovernanceTypes.CallMethodParams<"parseAndVerifyVAA">) => Promise>; parseAndVerifyGovernanceVAAGeneric: (params: GovernanceTypes.CallMethodParams<"parseAndVerifyGovernanceVAAGeneric">) => Promise>; }; multicall(calls: Calls): Promise>; } export {};