import { AttestationReceipt, Chain, ChainContext, Network, PorticoBridge, Signer, SourceInitiatedTransferReceipt, TokenId, TransactionId, TransferState, amount } from "../..";
import { AutomaticRoute, StaticRouteMethods } from "../route";
import { Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "../types";
export declare const SLIPPAGE_BPS = 15n;
export declare const BPS_PER_HUNDRED_PERCENT = 10000n;
export declare namespace PorticoRoute {
    type Options = {};
    type NormalizedParams = {
        amount: amount.Amount;
        canonicalSourceToken: TokenId;
        canonicalDestinationToken: TokenId;
        sourceToken: TokenId;
        destinationToken: TokenId;
    };
    interface ValidatedParams extends ValidatedTransferParams<Options> {
        normalizedParams: NormalizedParams;
    }
}
type OP = PorticoRoute.Options;
type R = Receipt<AttestationReceipt<"PorticoBridge">>;
type VP = PorticoRoute.ValidatedParams;
type VR = ValidationResult<OP>;
type TP = TransferParams<OP>;
type Q = Quote<OP, VP, PorticoBridge.Quote>;
type QR = QuoteResult<OP, VP, PorticoBridge.Quote>;
export declare class AutomaticPorticoRoute<N extends Network> extends AutomaticRoute<N, OP, VP, R> implements StaticRouteMethods<typeof AutomaticPorticoRoute> {
    NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
    static meta: {
        name: string;
    };
    private static _supportedTokens;
    static supportedNetworks(): Network[];
    static supportedChains(network: Network): Chain[];
    static supportedSourceTokens(fromChain: ChainContext<Network>): Promise<TokenId[]>;
    static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
    static isProtocolSupported<N extends Network>(chain: ChainContext<N>): boolean;
    isAvailable(): Promise<boolean>;
    getDefaultOptions(): OP;
    validate(params: TP): Promise<VR>;
    quote(params: VP): Promise<QR>;
    initiate(sender: Signer<N>, quote: Q): Promise<SourceInitiatedTransferReceipt<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky", "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky">>;
    track(receipt: R, timeout?: number): AsyncGenerator<{
        vaa: import("@wormhole-foundation/sdk-definitions/dist/esm/vaa/vaa").VAA<"TokenBridge:TransferWithPayload">;
        parsed: {
            readonly flagSet: {
                readonly recipientChain: number;
                readonly bridgeNonce: number;
                readonly feeTierStart: number;
                readonly feeTierFinish: number;
                readonly padding: Uint8Array;
                readonly flags: import("@wormhole-foundation/sdk-base/dist/esm/utils/layout/items").Bitset<readonly ["shouldWrapNative", "shouldUnwrapNative"]>;
            };
            readonly finalTokenAddress: import("@wormhole-foundation/sdk-definitions/dist/esm/universalAddress").UniversalAddress;
            readonly recipientAddress: import("@wormhole-foundation/sdk-definitions/dist/esm/universalAddress").UniversalAddress;
            readonly cannonAssetAmount: bigint;
            readonly minAmountFinish: bigint;
            readonly relayerFee: bigint;
        };
        state: TransferState.SourceInitiated;
        originTxs: TransactionId<"Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky">[];
        from: "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky";
        to: "Solana" | "Ethereum" | "Terra" | "Bsc" | "Polygon" | "Avalanche" | "Oasis" | "Algorand" | "Aurora" | "Fantom" | "Karura" | "Acala" | "Klaytn" | "Celo" | "Near" | "Moonbeam" | "Neon" | "Terra2" | "Injective" | "Osmosis" | "Sui" | "Aptos" | "Arbitrum" | "Optimism" | "Gnosis" | "Pythnet" | "Xpla" | "Btc" | "Base" | "Sei" | "Rootstock" | "Wormchain" | "Cosmoshub" | "Evmos" | "Kujira" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky";
    }, void, unknown>;
    complete(signer: Signer<N>, receipt: R): Promise<TransactionId[]>;
    private quoteUniswap;
}
export {};
//# sourceMappingURL=automatic.d.ts.map