import type { Bound, CreatePluginFunction, PluginWithOptions, UtilityPluginOptions, UtilityVariations } from './types/plugin-types.js'; import type { Plugin, PluginCreator } from './types/tailwind-types.js'; export interface ShadowPart { raw: string; keyword?: string; x?: string; y?: string; blur?: string; spread?: string; color?: string; unknown?: string[]; valid: boolean; } type FontKeys = 'fontSize' | 'fontFamily' | 'outline'; type TransformKeys = 'boxShadow' | 'transitionProperty' | 'transitionDuration' | 'transitionDelay' | 'transitionTimingFunction' | 'backgroundImage' | 'backgroundSize' | 'backgroundColor' | 'cursor' | 'animation' | 'gridTemplateColumns' | 'gridTemplateRows' | 'objectPosition' | (string & {}); export type ThemeKey = FontKeys | TransformKeys; export type ValueTransformer = (value: T, opts?: Record) => string | number | string[] | undefined; declare const parseBoxShadowValue: (input: string) => ShadowPart[]; declare const formatBoxShadowValue: (shadows: ShadowPart[]) => string; declare const createPlugin: CreatePluginFunction; /** * Type guard */ declare function isPluginWithOptions(plugin: unknown): plugin is PluginWithOptions; /** * Returns a shallow clone of the object where all function values * are bound with `this` set to `undefined`, * so that destructuring is safe and ESLint `unbound-method` rule won't trigger. * * This is only safe for objects whose function values are `this`-independent * * E.g. Use this when passing a `PluginAPI` to a plugin handler to ensure functions like * `theme()` or `matchUtilities()` can be safely destructured and called. */ declare function autoBind(obj: T): Bound; /** * A type-safe re-export of Tailwind's internal createUtilityPlugin. * For internal use in Lynx plugin system. */ declare function createUtilityPlugin(themeKey: string, utilityVariations?: UtilityVariations, options?: UtilityPluginOptions): PluginCreator; export { createUtilityPlugin, createPlugin, autoBind, isPluginWithOptions }; export type { Plugin, PluginWithOptions }; export declare const transformThemeValue: (key: ThemeKey) => ValueTransformer; export { parseBoxShadowValue, formatBoxShadowValue }; export declare const TW_NO_PREFIX: InternalFeatures;