import { BoxProps, Factory, RaikouColor, RaikouSize, StylesApiProps } from '../../core'; import type { RaikouLoader, RaikouLoadersRecord } from './Loader.types'; export type LoaderStylesNames = 'root'; export type LoaderCssVariables = { root: '--loader-size' | '--loader-color'; }; export interface LoaderProps extends BoxProps, StylesApiProps, Omit, keyof BoxProps> { /** Controls `width` and `height` of the loader. `Loader` has predefined `xs`-`xl` values. Numbers are converted to rem. Default value is `'md'` */ size?: RaikouSize | (string & {}) | number; /** Key of `theme.colors` or any valid CSS color, default value is `theme.primaryColor` */ color?: RaikouColor; /** Loader type, key of `loaders` prop, default value is `'oval'` */ type?: RaikouLoader; /** Object of loaders components, can be customized via default props or inline. Default value contains `bars`, `oval` and `dots` */ loaders?: RaikouLoadersRecord; /** Overrides default loader with given content */ children?: React.ReactNode; } export type LoaderFactory = Factory<{ props: LoaderProps; ref: HTMLSpanElement; stylesNames: LoaderStylesNames; vars: LoaderCssVariables; staticComponents: { defaultLoaders: typeof defaultLoaders; }; }>; export declare const defaultLoaders: RaikouLoadersRecord; export declare const Loader: import("../../core").RaikouComponent<{ props: LoaderProps; ref: HTMLSpanElement; stylesNames: LoaderStylesNames; vars: LoaderCssVariables; staticComponents: { defaultLoaders: typeof defaultLoaders; }; }>;