import { Chain, Network } from "@wormhole-foundation/sdk-base"; import { ChainContext, Signer, TokenId, TransactionId } from "@wormhole-foundation/sdk-definitions"; import { Wormhole } from "../wormhole"; import { RouteTransferRequest } from "./request"; import { Options, Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "./types"; export declare abstract class Route = ValidatedTransferParams, R extends Receipt = Receipt> { wh: Wormhole; request: RouteTransferRequest; abstract readonly NATIVE_GAS_DROPOFF_SUPPORTED: boolean; abstract readonly IS_AUTOMATIC: boolean; constructor(wh: Wormhole, request: RouteTransferRequest); abstract validate(params: TransferParams): Promise>; abstract quote(params: ValidatedTransferParams): Promise>; abstract initiate(sender: Signer, quote: Quote): Promise; abstract track(receipt: R, timeout?: number): AsyncGenerator; transferUrl(txid: string): string; abstract getDefaultOptions(): OP; } export interface RouteMeta { name: string; logo?: string; support?: string; source?: string; } export interface RouteConstructor { new (wh: Wormhole, request: RouteTransferRequest): Route; readonly meta: RouteMeta; supportedNetworks(): Network[]; supportedChains(network: Network): Chain[]; isProtocolSupported(chain: ChainContext): boolean; supportedSourceTokens(fromChain: ChainContext): Promise; supportedDestinationTokens(token: TokenId, fromChain: ChainContext, toChain: ChainContext): Promise; } export type StaticRouteMethods = InstanceType; export declare abstract class AutomaticRoute = ValidatedTransferParams, R extends Receipt = Receipt> extends Route { IS_AUTOMATIC: boolean; abstract isAvailable(): Promise; } export declare function isAutomatic(route: Route): route is AutomaticRoute; export declare abstract class ManualRoute = ValidatedTransferParams, R extends Receipt = Receipt> extends Route { NATIVE_GAS_DROPOFF_SUPPORTED: boolean; IS_AUTOMATIC: boolean; abstract complete(sender: Signer, receipt: R): Promise; } export declare function isManual(route: Route): route is ManualRoute; //# sourceMappingURL=route.d.ts.map