import React from "react";
import { Placement } from "@floating-ui/react";

//#region src/tutorial/tutorial.types.d.ts
type TutorialDataStep = {
  /** title of step */title: string; /** Content */
  content?: string | React.ReactNode; /** Link to page where they can read more */
  readMoreLink?: string;
};
type TutorialProps = {
  /** Label for the action button @default `Action` */actionLabel?: string; /** Target element for the tutorial */
  children: React.ReactNode; /** Custom class name */
  className?: string; /** An id for further handling with localStorage */
  id: string; /** Invoked once the action button is clicked. */
  onAction?: () => void; /** Invoked once the dismiss button is clicked. */
  onDismiss?: () => void; /** Invoked once the finish button is clicked. */
  onFinish?: () => void; /** Popover placement */
  placement?: Placement; /** An array of steps */
  steps: TutorialDataStep[]; /** Show the Skip button */
  showSkipButton?: boolean; /** General tutorial title */
  title: string; /** Link to page where they can read more */
  readMoreLink?: string; /** Decides if should show or hide floating panel  */
  isVisible?: boolean; /** Should include last thank you page  */
  includeFinalPage?: boolean; /** Should use dynamic header based on content  */
  useContentTitle?: boolean;
};
type TutorialCardProps = {
  /** Label for the action button @default `Action` */actionLabel?: string; /** Custom class name */
  className?: string; /** The card title */
  title: string; /** Steps of the card */
  steps: TutorialDataStep[]; /** Invoked once the action button clicked. */
  onAction?: () => void; /** Callback for the dismiss button click. */
  onDismiss?: () => void; /** Callback for the finish button click. */
  onFinish?: () => void; /** Link to page where they can read more */
  readMoreLink?: string; /** Show the Skip button */
  showSkipButton?: boolean; /** Include the final page */
  includeFinalPage?: boolean; /** Should use dynamic header based on content  */
  useContentTitle?: boolean;
};
type TutorialStepProps = {
  /** If the step is active or not */active: boolean; /** Title of step */
  title: string; /** Step content */
  content?: string | React.ReactNode; /** Link to page where user can read more */
  readMoreLink?: string; /** Should use dynamic header based on content  */
  useContentTitle?: boolean;
};
type TutorialStepWrapper = {
  key: number;
  step: TutorialDataStep;
};
type CloseEvent = 'dismissed' | 'finished';
//#endregion
export { CloseEvent, TutorialCardProps, TutorialDataStep, TutorialProps, TutorialStepProps, TutorialStepWrapper };

//# sourceMappingURL=tutorial.types.d.ts.map