import { Contract, SignerProvider, Address, Token, ContractState, node, TestContractResult, InputAsset, Asset, Fields, SignDeployContractTxResult } from "@alephium/web3";
export declare type _TokenBridgeFactoryFields = {
    localTokenPoolTemplateId: string;
    remoteTokenPoolTemplateId: string;
    tokenBridgeForChainTemplateId: string;
    attestTokenHandlerTemplateId: string;
    unexecutedSequenceTemplateId: string;
};
export declare type _TokenBridgeFactoryState = _TokenBridgeFactoryFields & Omit<ContractState, "fields">;
export declare class TokenBridgeFactory {
    static readonly contract: Contract;
    readonly address: Address;
    readonly contractId: string;
    readonly groupIndex: number;
    deployResult: SignDeployContractTxResult | undefined;
    private constructor();
    static deploy(signer: SignerProvider, localTokenPoolTemplateId: string, remoteTokenPoolTemplateId: string, tokenBridgeForChainTemplateId: string, attestTokenHandlerTemplateId: string, unexecutedSequenceTemplateId: string, _extraParams?: {
        initialAttoAlphAmount?: bigint;
        initialTokenAmounts?: Token[];
        issueTokenAmount?: bigint;
        gasAmount?: number;
        gasPrice?: bigint;
    }): Promise<TokenBridgeFactory>;
    static connect(address: string, deployResult?: SignDeployContractTxResult): TokenBridgeFactory;
    fetchState(): Promise<_TokenBridgeFactoryState>;
    static stateForTest(localTokenPoolTemplateId: string, remoteTokenPoolTemplateId: string, tokenBridgeForChainTemplateId: string, attestTokenHandlerTemplateId: string, unexecutedSequenceTemplateId: string, asset?: Asset, address?: string): ContractState;
    static testGetLocalTokenPoolTemplateId(_initFields: _TokenBridgeFactoryFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string];
    }>;
    static testGetRemoteTokenPoolTemplateId(_initFields: _TokenBridgeFactoryFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string];
    }>;
    static testGetTokenBridgeForChainTemplateId(_initFields: _TokenBridgeFactoryFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string];
    }>;
    static testGetAttestTokenHandlerTemplateId(_initFields: _TokenBridgeFactoryFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string];
    }>;
    static testGetUnexecutedSequenceTemplateId(_initFields: _TokenBridgeFactoryFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string];
    }>;
    getLocalTokenPoolTemplateIdCall(_extraParams?: {
        worldStateBlockHash?: string;
        txId?: string;
        existingContracts?: string[];
        inputAssets?: node.TestInputAsset[];
    }): Promise<string>;
    getRemoteTokenPoolTemplateIdCall(_extraParams?: {
        worldStateBlockHash?: string;
        txId?: string;
        existingContracts?: string[];
        inputAssets?: node.TestInputAsset[];
    }): Promise<string>;
    getTokenBridgeForChainTemplateIdCall(_extraParams?: {
        worldStateBlockHash?: string;
        txId?: string;
        existingContracts?: string[];
        inputAssets?: node.TestInputAsset[];
    }): Promise<string>;
    getAttestTokenHandlerTemplateIdCall(_extraParams?: {
        worldStateBlockHash?: string;
        txId?: string;
        existingContracts?: string[];
        inputAssets?: node.TestInputAsset[];
    }): Promise<string>;
    getUnexecutedSequenceTemplateIdCall(_extraParams?: {
        worldStateBlockHash?: string;
        txId?: string;
        existingContracts?: string[];
        inputAssets?: node.TestInputAsset[];
    }): Promise<string>;
}
