import { ReactNode } from 'react'; /** * Theme configuration for loaders */ export interface LoaderTheme { /** Primary color for loaders */ primaryColor?: string; /** Secondary color for loaders */ secondaryColor?: string; /** Base color for skeletons */ skeletonBase?: string; /** Highlight color for skeletons */ skeletonHighlight?: string; /** Default size for loaders */ defaultSize?: number | string; /** Default speed for animations */ defaultSpeed?: 'slow' | 'normal' | 'fast' | number; /** Default delay before showing loaders */ defaultDelay?: number; /** Default minimum duration for loaders */ defaultMinDuration?: number; /** Default transition duration */ defaultTransition?: number | boolean; /** Respect user's motion preferences by default */ respectMotionPreference?: boolean; } interface ThemeContextValue { theme: LoaderTheme; } export interface ThemeProviderProps { /** Theme configuration */ theme?: LoaderTheme; /** Child components */ children: ReactNode; } /** * ThemeProvider - Global theme configuration for loaders * * Provides theme values to all loader components in the component tree. * Components will use theme values as defaults unless overridden by props. * * @example * ```tsx * import { ThemeProvider } from 'premium-react-loaders'; * * function App() { * return ( * * * * ); * } * ``` */ export declare function ThemeProvider({ theme, children }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element; /** * useTheme - Access theme configuration * * Returns the current theme configuration from ThemeProvider. * If no ThemeProvider is present, returns an empty theme object. * * @example * ```tsx * function MyComponent() { * const { theme } = useTheme(); * return
Hello
; * } * ``` */ export declare function useTheme(): ThemeContextValue; /** * Get theme value with fallback * @internal */ export declare function useThemeValue(key: K, propValue: LoaderTheme[K] | undefined, defaultValue: LoaderTheme[K]): LoaderTheme[K]; export {}; //# sourceMappingURL=ThemeContext.d.ts.map