import { Contract, SignerProvider, Address, Token, ContractState, TestContractResult, InputAsset, Asset, Fields, SignDeployContractTxResult } from "@alephium/web3";
export declare type _AttestTokenHandlerFields = {
    governance: string;
    localTokenBridge: string;
    chainId: bigint;
    tokenBridgeId: string;
    receivedSequence: bigint;
    isLocalHandler: boolean;
};
export declare type _AttestTokenHandlerState = _AttestTokenHandlerFields & Omit<ContractState, "fields">;
export declare class AttestTokenHandler {
    static readonly contract: Contract;
    readonly address: Address;
    readonly contractId: string;
    readonly groupIndex: number;
    deployResult: SignDeployContractTxResult | undefined;
    private constructor();
    static deploy(signer: SignerProvider, governance: string, localTokenBridge: string, chainId: bigint, tokenBridgeId: string, receivedSequence: bigint, isLocalHandler: boolean, _extraParams?: {
        initialAttoAlphAmount?: bigint;
        initialTokenAmounts?: Token[];
        issueTokenAmount?: bigint;
        gasAmount?: number;
        gasPrice?: bigint;
    }): Promise<AttestTokenHandler>;
    static connect(address: string, deployResult?: SignDeployContractTxResult): AttestTokenHandler;
    fetchState(): Promise<_AttestTokenHandlerState>;
    static stateForTest(governance: string, localTokenBridge: string, chainId: bigint, tokenBridgeId: string, receivedSequence: bigint, isLocalHandler: boolean, asset?: Asset, address?: string): ContractState;
    static testParseAttestToken(args: {
        vaa: string;
    }, _initFields: _AttestTokenHandlerFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [string, string, string, bigint, bigint];
    }>;
    static testCreateLocalTokenPool(args: {
        vaa: string;
        payer: string;
        createContractAlphAmount: bigint;
        tokenAmount: bigint;
    }, _initFields: _AttestTokenHandlerFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [];
    }>;
    static testCreateRemoteTokenPool(args: {
        vaa: string;
        payer: string;
        createContractAlphAmount: bigint;
    }, _initFields: _AttestTokenHandlerFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [];
    }>;
    static testUpdateRemoteTokenPool(args: {
        vaa: string;
    }, _initFields: _AttestTokenHandlerFields | Fields, _extraParams?: {
        group?: number;
        address?: string;
        initialAsset?: Asset;
        existingContracts?: ContractState[];
        inputAssets?: InputAsset[];
    }): Promise<Omit<TestContractResult, "returns"> & {
        returns: [];
    }>;
}
