import { Address, ContractState, TestContractResult, HexString, ContractFactory, SubscribeOptions, EventSubscription, CallContractParams, CallContractResult, TestContractParams, ContractCreatedEvent, ContractDestroyedEvent, ContractInstance } from "@alephium/web3";
export declare namespace TokenBridgeTypes {
    type Fields = {
        governance: HexString;
        localChainId: bigint;
        receivedSequence: bigint;
        sendSequence: bigint;
        tokenBridgeFactory: HexString;
        minimalConsistencyLevel: bigint;
        refundAddress: HexString;
    };
    type State = ContractState<Fields>;
}
declare class Factory extends ContractFactory<TokenBridgeInstance, TokenBridgeTypes.Fields> {
    at(address: string): TokenBridgeInstance;
    testParseAndVerifyGovernanceVAAMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
        action: HexString;
    }>): Promise<TestContractResult<[bigint, HexString]>>;
    testCreateAttestTokenHandlerMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        payer: HexString;
        createContractAlphAmount: bigint;
        remoteChainId: bigint;
        remoteTokenBridgeId: HexString;
        isLocal: boolean;
    }>): Promise<TestContractResult<null>>;
    testCreateLocalAttestTokenHandlerMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        payer: HexString;
        createContractAlphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
    testParseAndVerifyRegisterChainMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<[bigint, HexString]>>;
    testRegisterChainMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
        payer: HexString;
        createContractAlphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
    testUpgradeContractMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<null>>;
    testDestroyUnexecutedSequenceContractsMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<null>>;
    testUpdateMinimalConsistencyLevelMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<null>>;
    testGetRefundAddressMethod(params: Omit<TestContractParams<TokenBridgeTypes.Fields, never>, "testArgs">): Promise<TestContractResult<HexString>>;
    testUpdateRefundAddressMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<null>>;
    testParseConractUpgradeMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        payload: HexString;
    }>): Promise<TestContractResult<[HexString, HexString, HexString, HexString]>>;
    testGetMessageFeeMethod(params: Omit<TestContractParams<TokenBridgeTypes.Fields, never>, "testArgs">): Promise<TestContractResult<bigint>>;
    testAttestTokenMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        payer: HexString;
        localTokenId: HexString;
        decimals: bigint;
        symbol: HexString;
        name: HexString;
        nonce: HexString;
        consistencyLevel: bigint;
    }>): Promise<TestContractResult<null>>;
    testNextSendSequenceMethod(params: Omit<TestContractParams<TokenBridgeTypes.Fields, never>, "testArgs">): Promise<TestContractResult<bigint>>;
    testCreateLocalTokenPoolMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        localTokenId: HexString;
        decimals: bigint;
        payer: HexString;
        createContractAlphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
    testCreateRemoteTokenPoolMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        bridgeTokenId: HexString;
        tokenChainId: bigint;
        decimals: bigint;
        symbol: HexString;
        name: HexString;
        msgSequence: bigint;
        payer: HexString;
        createContractAlphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
    testUpdateRemoteTokenPoolMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        bridgeTokenId: HexString;
        tokenChainId: bigint;
        symbol: HexString;
        name: HexString;
        msgSequence: bigint;
    }>): Promise<TestContractResult<null>>;
    testTransferTokenMethod(params: TestContractParams<TokenBridgeTypes.Fields, {
        fromAddress: HexString;
        bridgeTokenId: HexString;
        tokenChainId: bigint;
        toChainId: bigint;
        toAddress: HexString;
        tokenAmount: bigint;
        messageFee: bigint;
        arbiterFee: bigint;
        nonce: HexString;
        consistencyLevel: bigint;
    }>): Promise<TestContractResult<null>>;
}
export declare const TokenBridge: Factory;
export declare class TokenBridgeInstance extends ContractInstance {
    constructor(address: Address);
    fetchState(): Promise<TokenBridgeTypes.State>;
    subscribeContractCreatedEvent(options: SubscribeOptions<ContractCreatedEvent>, fromCount?: number): EventSubscription;
    subscribeContractDestroyedEvent(options: SubscribeOptions<ContractDestroyedEvent>, fromCount?: number): EventSubscription;
    subscribeAllEvents(options: SubscribeOptions<ContractCreatedEvent | ContractDestroyedEvent>, fromCount?: number): EventSubscription;
    callGetRefundAddressMethod(params?: Omit<CallContractParams<{}>, "args">): Promise<CallContractResult<HexString>>;
    callGetMessageFeeMethod(params?: Omit<CallContractParams<{}>, "args">): Promise<CallContractResult<bigint>>;
}
export {};
