import { AccountAddress, AutomaticTokenBridge, ChainAddress, ChainId, ChainsConfig, Contracts, Network, Platform, TokenAddress } from '@wormhole-foundation/connect-sdk';
import { SolanaChains, SolanaUnsignedTransaction } from '@wormhole-foundation/connect-sdk-solana';
import { Program } from '@project-serum/anchor';
import { Connection, PublicKey } from '@solana/web3.js';
import { TokenBridgeRelayer as TokenBridgeRelayerContract } from './automaticTokenBridgeType';
import '@wormhole-foundation/connect-sdk-solana-core';
export declare class SolanaAutomaticTokenBridge<N extends Network, C extends SolanaChains> implements AutomaticTokenBridge<N, C> {
    readonly network: N;
    readonly chain: C;
    readonly connection: Connection;
    readonly contracts: Contracts;
    readonly chainId: ChainId;
    readonly coreBridgeProgramId: PublicKey;
    readonly tokenBridgeProgramId: PublicKey;
    readonly tokenBridgeRelayer: Program<TokenBridgeRelayerContract>;
    private constructor();
    static fromRpc<N extends Network>(connection: Connection, config: ChainsConfig<N, Platform>): Promise<SolanaAutomaticTokenBridge<N, SolanaChains>>;
    transfer(sender: AccountAddress<C>, recipient: ChainAddress, token: TokenAddress<C>, amount: bigint, nativeGas?: bigint | undefined): AsyncGenerator<SolanaUnsignedTransaction<N, C>, void, unknown>;
    redeem(sender: AccountAddress<C>, vaa: AutomaticTokenBridge.VAA): AsyncGenerator<SolanaUnsignedTransaction<N, C>, void, unknown>;
    getRelayerFee(sender: AccountAddress<C>, recipient: ChainAddress, token: TokenAddress<C>): Promise<bigint>;
    maxSwapAmount(token: TokenAddress<C>): Promise<bigint>;
    nativeTokenAmount(token: TokenAddress<C>, amount: bigint): Promise<bigint>;
    isRegisteredToken(token: TokenAddress<C>): Promise<boolean>;
    private mintAddress;
    getRegisteredTokens(): Promise<(import("@wormhole-foundation/connect-sdk").ChainToPlatform<C> extends infer T ? T extends import("@wormhole-foundation/connect-sdk").ChainToPlatform<C> ? T extends "Solana" ? WormholeNamespace.PlatformToNativeAddressMapping[T] : never : never : never)[]>;
    private calculateNativeSwapRate;
    private getForeignContract;
    private getRegisteredToken;
    private getRedeemerConfig;
    private createUnsignedTx;
}
//# sourceMappingURL=automaticTokenBridge.d.ts.map