import { Network } from "@wormhole-foundation/sdk-base";
import { AttestationId, GatewayTransferDetails, IbcTransferInfo, Signer, TokenBridge, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
import { TransferState } from "../types";
import { Wormhole } from "../wormhole";
import { WormholeTransfer } from "./wormholeTransfer";
export declare class GatewayTransfer<N extends Network = Network> implements WormholeTransfer<"IbcBridge"> {
    static chain: "Wormchain";
    private readonly wh;
    private readonly gateway;
    private readonly gatewayIbcBridge;
    private readonly gatewayAddress;
    private _state;
    private msg;
    transfer: GatewayTransferDetails;
    transactions: TransactionId[];
    vaas?: {
        id: WormholeMessageId;
        vaa?: TokenBridge.TransferVAA;
    }[];
    ibcTransfers: IbcTransferInfo[];
    private constructor();
    getTransferState(): TransferState;
    static from<N extends Network>(wh: Wormhole<N>, from: GatewayTransferDetails): Promise<GatewayTransfer<N>>;
    static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number): Promise<GatewayTransfer<N>>;
    static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number): Promise<GatewayTransfer<N>>;
    private static _fromMsgId;
    private static _fromTransaction;
    private static ibcTransfertoGatewayTransfer;
    initiateTransfer(signer: Signer): Promise<TxHash[]>;
    private _transfer;
    private _transferIbc;
    fetchAttestation(timeout?: number): Promise<AttestationId[]>;
    completeTransfer(signer: Signer): Promise<TxHash[]>;
    static getTransferVaa<N extends Network>(wh: Wormhole<N>, whm: WormholeMessageId, timeout?: number): Promise<TokenBridge.TransferVAA>;
    private fromGateway;
    private toGateway;
}
//# sourceMappingURL=gatewayTransfer.d.ts.map