import type { SuiClient } from "@mysten/sui/client";
import { type AccountAddress, type AutomaticTokenBridge, type Chain, type ChainAddress, type ChainsConfig, type Contracts, type Network, type Platform, type TokenAddress } from "@wormhole-foundation/sdk-connect";
import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui";
import "@wormhole-foundation/sdk-sui-core";
export interface TokenInfo {
    max_native_swap_amount: string;
    swap_enabled: boolean;
    swap_rate: string;
}
export declare class SuiAutomaticTokenBridge<N extends Network, C extends SuiChains> implements AutomaticTokenBridge<N, C> {
    readonly network: N;
    readonly chain: C;
    readonly connection: SuiClient;
    readonly contracts: Contracts;
    tokenBridgeRelayerObjectId: string;
    coreBridgeObjectId: string;
    tokenBridgeObjectId: string;
    fields?: Record<string, any>;
    constructor(network: N, chain: C, connection: SuiClient, contracts: Contracts);
    static fromRpc<N extends Network>(connection: SuiClient, config: ChainsConfig<N, Platform>): Promise<SuiAutomaticTokenBridge<N, SuiChains>>;
    transfer(sender: AccountAddress<C>, recipient: ChainAddress, token: TokenAddress<C>, amount: bigint, nativeGas?: bigint | undefined): AsyncGenerator<SuiUnsignedTransaction<N, C>, void, unknown>;
    redeem(sender: AccountAddress<C>, vaa: AutomaticTokenBridge.VAA): AsyncGenerator<SuiUnsignedTransaction<N, C>, void, unknown>;
    getRelayerFee(destination: Chain, token: TokenAddress<C>): Promise<bigint>;
    maxSwapAmount(token: TokenAddress<C>): Promise<bigint>;
    nativeTokenAmount(token: TokenAddress<C>, amount: bigint): Promise<bigint>;
    getRegisteredTokens(): Promise<TokenAddress<C>[]>;
    isRegisteredToken(token: TokenAddress<C>): Promise<boolean>;
    private getTokenInfo;
    private getFields;
    private getPackageId;
    private getPackageIds;
    private createUnsignedTx;
}
//# sourceMappingURL=automaticTokenBridge.d.ts.map