import { type CSSProperties, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
import { type IconRotatorClassNameOptions } from "./styles.js";
/**
* @since 6.0.0 Removed `animate` prop and added `disableTransition`
*/
export interface IconRotatorBaseProps extends HTMLAttributes, IconRotatorClassNameOptions {
/**
* An optional style to apply to the surrounding span when the `forceIconWrap`
* prop is enabled or the children is not a single react element.
*/
style?: CSSProperties;
/**
* Boolean if the child icon should be "forcefully" wrapped in a ``
* element. This should be enabled if you have a custom icon that does not
* pass the `className` prop down.
*
* @defaultValue `false`
*/
forceIconWrap?: boolean;
}
export interface IconRotatorProps extends IconRotatorBaseProps {
ref?: Ref;
/**
* The icon that should be rotated. If this is a valid React Element, the
* class names will be cloned into that icon, otherwise the icon will be
* wrapped in a span with the correct class names applied.
*/
children: ReactNode;
}
/**
* The `IconRotator` is a simple component that is used to rotate an icon from a
* one degrees to another.
*
* @see {@link https://react-md.dev/components/icon-rotator | IconRotator Demos}
*/
export declare function IconRotator(props: IconRotatorProps): ReactElement;