import { CSSProperties } from 'react'; import type { VariantInput, VariantOutput } from '../functions/fns/variant-colors/variant-colors'; import { ColorScheme } from './color-scheme'; import { FlowindColor } from './flowind-color'; import { FlowindSizes } from './flowind-size'; interface FlowindThemeFunctions { variantColors: (payload: VariantInput) => VariantOutput; } export interface FlowindTheme { dir: 'ltr' | 'rtl'; loader: 'oval' | 'bars' | 'dots'; colorScheme: ColorScheme; components: FlowindThemeComponents; radius: FlowindSizes; shadows: FlowindSizes; fn: FlowindThemeFunctions; primaryColor: FlowindColor; secondaryColor: FlowindColor; focusRing: string; focusInput: string; respectReducedMotion: boolean; transitionTimingFunction: CSSProperties['transitionTimingFunction']; } export type FlowindThemeComponents = Record; export interface ContextStylesParams { variant?: string; size?: string | number; } interface ThemeComponent { defaultProps?: Record; classNames?: Record; styles?: Record; variants?: Record Record>; sizes?: Record Record>; } export type FlowindThemeBase = Omit; export {};