import type { TypographyProps } from '@mui/material' import type { ReactNode } from 'react' import type { BaseWidgetState, WidgetsStoreProps } from '../stores/types' import type { WrapperState } from '../wrapper/types' import type { DownloadItem } from '../actions/download/types' import type { SeriesConfig } from '../formula/types' export interface SpreadUIProps { id: WidgetsStoreProps['id'] } export interface SpreadDataItem { min: number max: number prefix?: string | ReactNode suffix?: string | ReactNode color?: string } export interface RowProps { id: WidgetsStoreProps['id'] children: ReactNode | ((props: { index: number }) => ReactNode) } export interface ValueProps extends Omit { id: WidgetsStoreProps['id'] index?: number } export interface ItemProps { children: ReactNode disabled?: boolean TypographyProps?: TypographyProps } export type SpreadWidgetData = SpreadDataItem[] export type SpreadWidgetState = BaseWidgetState< WrapperState & { data: SpreadWidgetData } > export interface SpreadWidgetConfig { formatter?: (value: number) => string series?: SeriesConfig[] } export type SpreadDownloadConfig = DownloadItem[]