import { Chain, Network, amount } from "@wormhole-foundation/sdk-base";
import { ChainContext, Signer, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions";
import { CircleAttestationReceipt } from "../../protocols/cctpTransfer";
import { TransferReceipt } from "../../types";
import { ManualRoute, StaticRouteMethods } from "../route";
import { Quote, QuoteResult, TransferParams, ValidatedTransferParams, ValidationResult } from "../types";
export declare namespace CCTPRoute {
    type Options = {
        payload?: Uint8Array;
    };
    type NormalizedParams = {
        amount: amount.Amount;
    };
    interface ValidatedParams extends ValidatedTransferParams<Options> {
        normalizedParams: NormalizedParams;
    }
}
type Op = CCTPRoute.Options;
type Vp = CCTPRoute.ValidatedParams;
type Tp = TransferParams<Op>;
type Vr = ValidationResult<Op>;
type Q = Quote<Op, Vp>;
type QR = QuoteResult<Op, Vp>;
type R = TransferReceipt<CircleAttestationReceipt>;
export declare class CCTPRoute<N extends Network> extends ManualRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof CCTPRoute> {
    static meta: {
        name: string;
    };
    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;
    getDefaultOptions(): Op;
    validate(params: Tp): Promise<Vr>;
    quote(params: Vp): Promise<QR>;
    initiate(signer: Signer, quote: Q): Promise<R>;
    complete(signer: Signer, receipt: R): Promise<TransactionId[]>;
    track(receipt: R, timeout?: number): AsyncGenerator<import("../../protocols/cctpTransfer").CircleTransferReceipt<"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">, void, unknown>;
    private toTransferDetails;
}
export {};
//# sourceMappingURL=manual.d.ts.map