import { type CSSTransitionHookReturnValue, type PreconfiguredCSSTransitionOptions } from "./types.js"; declare module "react" { interface CSSProperties { "--rmd-slide-duration"?: string | number; } } /** @since 6.0.0 */ export declare const DEFAULT_SLIDE_TRANSITION_TIMEOUT: 150; /** @since 6.0.0 */ export declare const DEFAULT_SLIDE_TRANSITION_CLASSNAMES: { readonly enter: "rmd-slide--enter"; readonly enterActive: "rmd-slide--enter-active rmd-slide--animate"; readonly exit: "rmd-slide--exit"; readonly exitActive: "rmd-slide--exit-active rmd-slide--animate"; }; /** @since 6.0.0 */ export type SlideTransitionOptions = PreconfiguredCSSTransitionOptions; /** * @example Simple Example * ```tsx * import { * type SlideDirection, * slideContainer, * } from "@react-md/core/transition/SlideContainer"; * import { useSlideTransition } from "@react-md/core/transition/useSlideTransition"; * import { type ReactElement, type ReactNode, useState } from "react"; * * interface SlideProps { * active: boolean; * children: ReactNode; * } * * function Slide({ active, children }: SlideProps): ReactElement | null { * const { rendered, elementProps } = useSlideTransition({ * transitionIn: active, * }); * * if (!rendered) { * return null; * } * * return
{children}
; * } * * interface State { * direction: SlideDirection; * activeIndex: number; * } * * function Example(): ReactElement { * const [state, setState] = useState({ * direction: "left", * activeIndex: 0, * }); * const { direction, activeIndex } = state; * * // when changing a slide, `direction` should be set to "left" if the * // previous `activeIndex` is less than the next index * // * // i.e. * // setState((prevState) => ({ * // direction: prevState.activeIndex < index ? "left" : "right", * // activeIndex: index, * // })) * * return ( *
* Slide 1 * Slide 2 * Slide 3 *
* ); * } * ``` * * @see {@link https://react-md.dev/components/slide | Slide Demos} * @see {@link SlideContainer} and {@link Slide} for convenient default * implementations. * @since 6.0.0 */ export declare function useSlideTransition(options: SlideTransitionOptions): CSSTransitionHookReturnValue;