import { OnChainExecutionData, RouteActionResponse, RouteResponse, SquidData, type ChainData, type StatusResponse } from "@0xsquid/squid-types";
import { HistoryTransaction, SwapTransactionHistory } from "../../core/types/history";
import { PatchedRouteActionResponse, SimplifiedRouteAction, SwapTransactionForHistoryStore, SwapTransactionForStatus, TransactionParams } from "../../core/types/transaction";
export declare const formatTransactionHistoryDate: (transaction: SwapTransactionForHistoryStore | undefined) => {
    month: string;
    day: string;
} | undefined;
export declare const getAxelarExplorerTxUrl: (urlPrefix: string | undefined, routeType: string | undefined, txID: string) => string | undefined;
export declare const getSourceExplorerTxUrl: (chain: ChainData | undefined, txID: string) => string | undefined;
export declare const getMainExplorerUrl: (transaction?: TransactionParams) => any;
export declare const formatDistance: (date: number | Date, baseDate: number | Date, options?: {
    includeSeconds?: boolean | undefined;
    addSuffix?: boolean | undefined;
    locale?: Locale | undefined;
}) => string;
export declare const formatSeconds: (seconds: number, secondsTemplate?: string, minutesTemplate?: string, hoursTemplate?: string) => string;
/**
 * Remove the chainData from statusResponse to gain some storage space
 */
export declare const formatSwapTxStatusResponseForStorage: (sr: StatusResponse | undefined) => SwapTransactionHistory["statusResponse"];
export declare const simplifyRouteAction: (action: PatchedRouteActionResponse) => SimplifiedRouteAction;
export declare const fetchSwapTransactionStatus: ({ transaction, integratorId, apiUrl, }: {
    transaction?: SwapTransactionForStatus | undefined;
    integratorId: string;
    apiUrl: string;
}) => Promise<StatusResponse>;
export declare const compareTransactionIds: (idA: string, idB: string) => boolean;
interface Locale {
    locale?: string;
}
/**
 * Checks if the provided action is Coral bridge action
 */
export declare function isCoralBridgeAction(action: SimplifiedRouteAction): boolean;
/**
 * Determines if a given action completes as part of the user's source transaction.
 * Action types like RFQ are fulfilled by a solver in a separate transaction,
 * so they are NOT completed on source even if they share the same chain.
 */
export declare function isActionCompletedOnSourceTx(action: Pick<RouteActionResponse, "type" | "fromChain" | "toChain">, fromChainId: string): boolean;
export declare function sleep(ms: number): Promise<unknown>;
export declare const isChainflipDepositRoute: (route?: RouteResponse["route"]) => boolean;
/**
 * Checks if the route contains a Chainflip bridge action
 */
export declare function isChainflipBridgeTransaction(actions?: SimplifiedRouteAction[]): boolean;
/**
 * Checks if a route is of type {@link OnChainExecutionData}
 *
 * On-chain routes require calling a smart contract to execute
 */
export declare function isOnChainTxData(squidData: SquidData): squidData is OnChainExecutionData;
/**
 * Checks if a route is of type DepositAddressDirectTransfer
 */
export declare function isDepositAddressDirectTransferRoute(squidData: SquidData): squidData is OnChainExecutionData;
export declare function getHistoryTransactionId(tx: HistoryTransaction): string;
export {};
