import { Address, ContractState, TestContractResult, HexString, ContractFactory, SubscribeOptions, EventSubscription, CallContractParams, CallContractResult, TestContractParams, ContractCreatedEvent, ContractDestroyedEvent, ContractInstance } from "@alephium/web3";
export declare namespace TokenBridgeForChainTypes {
    type Fields = {
        governance: HexString;
        localChainId: bigint;
        localTokenBridgeId: HexString;
        remoteChainId: bigint;
        remoteTokenBridgeId: HexString;
        start: bigint;
        firstNext256: bigint;
        secondNext256: bigint;
        unexecutedSequenceTemplateId: HexString;
        sendSequence: bigint;
    };
    type State = ContractState<Fields>;
}
declare class Factory extends ContractFactory<TokenBridgeForChainInstance, TokenBridgeForChainTypes.Fields> {
    at(address: string): TokenBridgeForChainInstance;
    testSetExecutedMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        offset: bigint;
        current: bigint;
    }>): Promise<TestContractResult<bigint>>;
    testCompactMethod(params: Omit<TestContractParams<TokenBridgeForChainTypes.Fields, never>, "testArgs">): Promise<TestContractResult<null>>;
    testCheckSequenceInSubContractMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        seq: bigint;
    }>): Promise<TestContractResult<null>>;
    testCheckSequenceMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        seq: bigint;
    }>): Promise<TestContractResult<boolean>>;
    testNextSendSequenceMethod(params: Omit<TestContractParams<TokenBridgeForChainTypes.Fields, never>, "testArgs">): Promise<TestContractResult<bigint>>;
    testCheckCompleteTransferMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        vaa: HexString;
    }>): Promise<TestContractResult<[boolean, HexString]>>;
    testParseCompleteTransferMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        payload: HexString;
    }>): Promise<TestContractResult<[bigint, HexString, bigint, HexString, bigint]>>;
    testCompleteTransferMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        vaa: HexString;
        caller: HexString;
    }>): Promise<TestContractResult<null>>;
    testDestroyUnexecutedSequenceContractsMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        paths: HexString;
    }>): Promise<TestContractResult<null>>;
    testDepositMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        from: HexString;
        alphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
    testWithdrawMethod(params: TestContractParams<TokenBridgeForChainTypes.Fields, {
        alphAmount: bigint;
    }>): Promise<TestContractResult<null>>;
}
export declare const TokenBridgeForChain: Factory;
export declare class TokenBridgeForChainInstance extends ContractInstance {
    constructor(address: Address);
    fetchState(): Promise<TokenBridgeForChainTypes.State>;
    subscribeContractCreatedEvent(options: SubscribeOptions<ContractCreatedEvent>, fromCount?: number): EventSubscription;
    subscribeContractDestroyedEvent(options: SubscribeOptions<ContractDestroyedEvent>, fromCount?: number): EventSubscription;
    subscribeAllEvents(options: SubscribeOptions<ContractCreatedEvent | ContractDestroyedEvent>, fromCount?: number): EventSubscription;
    callNextSendSequenceMethod(params?: Omit<CallContractParams<{}>, "args">): Promise<CallContractResult<bigint>>;
}
export {};
