import { ReactNode, CSSProperties, ComponentType, FC } from 'react'; declare enum VoyagerStatusesEnum { Idle = "Idle", Waiting = "Waiting", Active = "Active", Paused = "Paused", Stopped = "Stopped", Skipped = "Skipped", Completed = "Completed" } type VoyagerPopperSide = 'top' | 'bottom' | 'left' | 'right'; type VoyagerPopperAlignment = 'start' | 'end' | null; type VoyagerPopperPlacement = 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end' | 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end'; type VoyagerRootElement = string | Element | (() => Element | null); type VoyagerErrorCode = 'target-not-found' | 'root-not-found'; type VoyagerError = { code: VoyagerErrorCode; message: string; selector?: string; stepIndex?: number; }; type VoyagerHelpersType = { start: () => Promise; stop: () => Promise; skip: () => void; goToStep: (newStep: number) => void; goNextStep: () => Promise; goBackStep: () => Promise; updateSteps: (selector: StepType['selector'], data: Partial) => void; }; type StylesType = { mask?: CSSProperties; overlay?: CSSProperties; popper?: CSSProperties; }; type ComponentPadding = number | [number, number]; type Padding = number | { mask?: ComponentPadding; popper?: ComponentPadding; wrapper?: ComponentPadding; }; type ZIndex = number | { mask?: number; popper?: number; }; type SharedProps = { rootEl?: VoyagerRootElement; localStorageKey?: string; loadingTimeout?: number; loader?: ReactNode; steps: StepType[]; styles?: StylesType; padding?: Padding; zIndex?: ZIndex; borderRadius?: number; placement?: VoyagerPopperPlacement; disableInteraction?: boolean; afterOpen?: (target: Element | null) => void; beforeClose?: (target: Element | null) => void; onClickHighlighted?: (event: MouseEvent, target: Element | null) => void; onError?: (error: VoyagerError) => void; scrollSmooth?: boolean; PopperContent: ComponentType; Wrapper?: ComponentType<{ children?: ReactNode; }>; startAt?: number; onChangeStep?: (step: StepType, currentStep: number) => Promise | void; }; type PopperContentProps = VoyagerStoreType & VoyagerHelpersType & Omit & { title?: ReactNode; content: ReactNode; }; type VoyagerStoreType = { status: VoyagerStatusesEnum; prevStep?: StepType; currStep?: StepType; nextStep?: StepType; isOpen: boolean; currentStep: number; steps: StepType[]; } & Pick; type VoyagerProps = Omit; type VoyagerProviderProps = VoyagerProps & { steps: StepType[]; localStorageKey?: string; startAt?: number; children: ReactNode; defaultOpen?: boolean; beforeStart?: () => Promise | void; afterStart?: () => Promise | void; beforeStop?: () => Promise | void; afterStop?: () => Promise | void; }; type StepType = { selector: string; title?: ReactNode | ((props: PopperContentProps) => ReactNode); content: ReactNode | ((props: PopperContentProps) => ReactNode); placement?: VoyagerPopperPlacement; stepInteraction?: boolean; padding?: Padding; styles?: StylesType; loadingTimeout?: number; onBeforeStep?: () => Promise | void; onAfterStep?: () => Promise | void; onChangeStep?: (step: StepType, currentStep: number) => Promise | void; meta?: Record; canDisplayWhenPageReload?: boolean; disableNextStepBtn?: boolean; disableBackStepBtn?: boolean; }; declare const Voyager: FC; declare const VoyagerProvider: FC; declare const useVoyager: () => VoyagerStoreType; declare const useVoyagerHelpers: () => VoyagerHelpersType; export { type ComponentPadding, type Padding, type PopperContentProps, type StepType, type StylesType, Voyager, type VoyagerError, type VoyagerErrorCode, type VoyagerHelpersType, type VoyagerPopperAlignment, type VoyagerPopperPlacement, type VoyagerPopperSide, type VoyagerProps, VoyagerProvider, type VoyagerProviderProps, type VoyagerRootElement, VoyagerStatusesEnum, type VoyagerStoreType, type ZIndex, useVoyager, useVoyagerHelpers };