import type { Spacing, WithStyleProps, ComponentStyle } from '@instructure/emotion'; import type { AsElementType, OtherHTMLAttributes, SpinnerTheme } from '@instructure/shared-types'; import type { WithDeterministicIdProps } from '@instructure/ui-react-utils'; import { Renderable } from '@instructure/shared-types'; type SpinnerOwnProps = { /** * Render Spinner "as" another HTML element */ as?: AsElementType; /** * delay spinner rendering for a time (in ms). Used to prevent flickering in case of very fast load times */ delay?: number; /** * provides a reference to the underlying html root element */ elementRef?: (element: Element | null) => void; /** * Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`, * `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via * familiar CSS-like shorthand. For example: `margin="small auto large"`. */ margin?: Spacing; /** * Give the spinner a title to be read by screenreaders */ renderTitle?: Renderable; /** * Different-sized spinners */ size?: 'x-small' | 'small' | 'medium' | 'large'; /** * Different color schemes for use with light or dark backgrounds */ variant?: 'default' | 'inverse'; }; type PropKeys = keyof SpinnerOwnProps; type AllowedPropKeys = Readonly>; type SpinnerProps = SpinnerOwnProps & WithStyleProps & OtherHTMLAttributes & WithDeterministicIdProps; type SpinnerState = { shouldRender: boolean; }; type SpinnerStyle = ComponentStyle<'spinner' | 'circle' | 'circleTrack' | 'circleSpin'>; declare const allowedProps: AllowedPropKeys; export type { SpinnerProps, SpinnerState, SpinnerStyle }; export { allowedProps }; //# sourceMappingURL=props.d.ts.map