import * as parallax_controller0 from "parallax-controller";
import { EasingPreset, Element, ParallaxController, ParallaxElementConfig, ValidScrollAxis } from "parallax-controller";
import * as react0 from "react";
import React$1, { HTMLAttributes, PropsWithChildren } from "react";

//#region src/components/Parallax/types.d.ts
interface ParallaxProps extends ParallaxElementConfig, Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {}
//#endregion
//#region src/components/Parallax/Parallax.d.ts
declare function Parallax(props: PropsWithChildren<ParallaxProps>): React$1.JSX.Element;
//#endregion
//#region src/components/ParallaxBanner/types.d.ts
interface BannerLayer extends ParallaxElementConfig, Omit<HTMLAttributes<{}>, 'onChange'> {
  /**
   * Indicate if the layer should be expanded with negative top/bottom margins so the edges will
   * never be visible.
   */
  expanded?: boolean;
  /**
   * Image source that will be applied as a CSS background image on the layer.
   */
  image?: string;
}
interface ParallaxBannerProps extends React.ComponentPropsWithoutRef<'div'> {
  /**
   * An Array of banner layers.
   */
  layers?: BannerLayer[];
  /**
   * Determines if all internal layers will be disabled
   */
  disabled?: boolean;
}
//#endregion
//#region src/components/ParallaxBanner/ParallaxBanner.d.ts
declare const ParallaxBanner: (props: PropsWithChildren<ParallaxBannerProps>) => React$1.JSX.Element;
//#endregion
//#region src/components/ParallaxBanner/components/ParallaxBannerLayer.d.ts
declare const ParallaxBannerLayer: (props: BannerLayer & {
  testId?: string;
}) => React$1.JSX.Element;
//#endregion
//#region src/components/ParallaxProvider/types.d.ts
interface ParallaxProviderProps {
  /**
   * Optionally pass the scroll axis for setting horizontal/vertical scrolling. One of vertical or
   * horizontal
   */
  scrollAxis?: ValidScrollAxis;
  /**
   * Optionally set the container that has overflow and will contain parallax elements. Defaults
   * to the HTML body
   */
  scrollContainer?: HTMLElement;
  /**
   * Disables the ParallaxController and all animations.
   */
  isDisabled?: boolean;
  children?: React.ReactNode;
}
//#endregion
//#region src/components/ParallaxProvider/ParallaxProvider.d.ts
declare function ParallaxProvider(props: PropsWithChildren<ParallaxProviderProps>): React$1.JSX.Element;
//#endregion
//#region src/hooks/useParallax.d.ts
declare function useParallax<T extends HTMLElement>(props: ParallaxProps): {
  ref: react0.RefObject<T | null>;
  controller: parallax_controller0.ParallaxController | null;
  element: Element | undefined;
};
//#endregion
//#region src/hooks/useParallaxController.d.ts
declare function useParallaxController(): ParallaxController | null;
//#endregion
//#region src/context/ParallaxContext.d.ts
declare const ParallaxContext: React$1.Context<ParallaxController | null>;
//#endregion
export { BannerLayer, EasingPreset, Parallax, ParallaxBanner, ParallaxBannerLayer, ParallaxBannerProps, ParallaxContext, ParallaxProps, ParallaxProvider, ParallaxProviderProps, useParallax, useParallaxController };
//# sourceMappingURL=index.d.mts.map