import { Currency } from "@coin-voyage/shared/types"; import type React from "react"; import { Dispatch, SetStateAction } from "react"; import { ChainId, ChainType } from "../server"; import type { ROUTE } from "./routes"; import { CurrencyAndQuoteID } from "./state"; export interface RouteConfig { component: React.ReactNode; heading: string | ((ctx: HeadingContext) => string | undefined); depth?: number; showBackButton?: boolean; showInfoButton?: boolean; onBack?: ROUTE | ((actions: BackNavigationActions) => void); } export interface HeadingContext { locales: Record; walletName: string | undefined; shouldUseQrcode: boolean; isWalletConnectConnector: boolean; selectedCurrencyOption: { ticker: string; chain_id: number; } | undefined; } export interface BackNavigationActions { setRoute: Dispatch>; setConnectorChainType: Dispatch>; setPayToAddressChain: Dispatch>; setPayToAddressCurrency: Dispatch>; setSelectedCurrencyOption: (option: CurrencyAndQuoteID | undefined) => void; clearUserSelection: () => void; }