UNPKG

@lifi/widget

Version:

LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.

48 lines (47 loc) 2.05 kB
import type { Order } from '@lifi/sdk'; import type { PropsWithChildren } from 'react'; import type { StoreApi } from 'zustand'; import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'; import type { Appearance, WidgetConfig } from '../../types'; export type ValueSetter<S> = <K extends keyof S>(key: K, value: S[Extract<K, string>]) => void; export type ValuesSetter<S> = <K extends keyof S>(values: Record<K, S[Extract<K, string>]>) => void; export type SettingsToolType = 'Bridges' | 'Exchanges'; export declare const SettingsToolTypes: SettingsToolType[]; export interface SettingsProps { appearance: Appearance; gasPrice?: string; language?: string; routePriority?: Order; enabledAutoRefuel: boolean; showDestinationWallet: boolean; slippage?: string; enabledBridges: string[]; _enabledBridges?: Record<string, boolean>; enabledExchanges: string[]; _enabledExchanges?: Record<string, boolean>; } export interface SettingsState extends SettingsProps { setValue: ValueSetter<SettingsProps>; setValues: ValuesSetter<SettingsProps>; initializeTools(toolType: SettingsToolType, tools: string[], reset?: boolean): void; setTools(toolType: SettingsToolType, tools: string[], availableTools: string[]): void; reset(config: WidgetConfig, bridges: string[], exchanges: string[]): void; } export interface SendToWalletState { showSendToWallet: boolean; showSendToWalletDirty: boolean; } export interface SendToWalletStore extends SendToWalletState { toggleSendToWallet(): void; setSendToWallet(value: boolean): void; } export type SplitSubvariantOptions = 'bridge' | 'swap'; export interface SplitSubvariantState { state?: SplitSubvariantOptions; setState(state: SplitSubvariantOptions): void; } export type SplitSubvariantStore = UseBoundStoreWithEqualityFn<StoreApi<SplitSubvariantState>>; export interface SplitSubvariantProps { state?: SplitSubvariantOptions; } export type SplitSubvariantProviderProps = PropsWithChildren<SplitSubvariantProps>;