import { CSSProperties, DetailedHTMLProps, HTMLAttributes, PropsWithChildren, ReactNode } from "react"; //#region src/types.d.ts type DirectiveEvent = "change" | "pause" | null; type HighlightMode = "word" | "sentence" | "line" | "paragraph"; type HighlightProps = { className?: string; id?: string; style?: CSSProperties; title?: string; }; type NodeProps = PropsWithChildren<{ key?: string; className?: string; }>; type SpeakingWord = { index: string; charIndex: number; length: number; } | null; type SpeakProps = SpeechSynthesisUtteranceProps & { text: ReactNode; }; type SpeechStatus = "started" | "paused" | "stopped" | "queued"; type SpeechSynthesisBoundaryEvent = { progress: number; }; type SpeechSynthesisBoundaryEventHandler = (event: SpeechSynthesisBoundaryEvent) => void; type SpeechSynthesisErrorHandler = (error: Error) => void; type SpeechSynthesisEventHandler = () => void; type SpeechSynthesisEventName = "word" | "sentence"; type SpeechSynthesisUtteranceProps = { pitch?: number; rate?: number; volume?: number; lang?: string; voiceURI?: string | string[]; }; type UpdateMode = "immediate" | "throttle" | "debounce"; type UseSpeakOptions = { preserveUtteranceQueue?: boolean; highlightText?: boolean; showOnlyHighlightedText?: boolean; highlightMode?: HighlightMode; highlightProps?: HighlightProps; highlightContainerProps?: HighlightProps; enableDirectives?: boolean; updateMode?: UpdateMode; updateDelay?: number; maxChunkSize?: number; onError?: SpeechSynthesisErrorHandler; onStart?: SpeechSynthesisEventHandler; onResume?: SpeechSynthesisEventHandler; onPause?: SpeechSynthesisEventHandler; onStop?: SpeechSynthesisEventHandler; onBoundary?: SpeechSynthesisBoundaryEventHandler; onQueueChange?: QueueChangeEventHandler; }; type UseSpeechOptions = SpeakProps & UseSpeakOptions & { stableText?: boolean; autoPlay?: boolean; }; type UseSpeechOptionsInternal = UseSpeechOptions & { id?: string; }; type IconProps = DetailedHTMLProps, HTMLSpanElement>; type Children = (childrenOptions: ChildrenOptions) => ReactNode; type ChildrenOptions = { speechStatus?: SpeechStatus; isInQueue?: boolean; start?: SpeechActionHandler; pause?: SpeechActionHandler; stop?: SpeechActionHandler; }; type DivProps = DetailedHTMLProps, HTMLDivElement>; type HighlightedTextProps = DivProps & { id: string; }; type SpeechActionHandler = VoidFunction; type SpeechProps = UseSpeechOptionsInternal & { startBtn?: ReactNode; pauseBtn?: ReactNode; stopBtn?: ReactNode; useStopOverPause?: boolean; enableConditionalHighlight?: boolean; props?: DivProps; children?: Children; }; type VoidFunction = () => void; type CleanupHandler = VoidFunction; type QueueChangeEventHandler = (queue: SpeechUtterancesQueue) => void; type SpeechQueue = SpeechQueueItem[]; type SpeechQueueItem = { text: string; utterance: SpeechSynthesisUtterance; setSpeechStatus: SpeechStatusUpdater; }; type SpeechStatusUpdater = (newStatus: SpeechStatus) => void; type SpeechUtterancesQueue = Partial[]; type Index = string | number; type State = { stopReason: "auto" | "change" | "manual"; }; type Words = string | Words[]; //#endregion export { UseSpeakOptions as A, SpeechSynthesisErrorHandler as C, SpeechUtterancesQueue as D, SpeechSynthesisUtteranceProps as E, UseSpeechOptionsInternal as M, VoidFunction as N, State as O, Words as P, SpeechSynthesisBoundaryEventHandler as S, SpeechSynthesisEventName as T, SpeechQueue as _, DivProps as a, SpeechStatusUpdater as b, HighlightedTextProps as c, NodeProps as d, QueueChangeEventHandler as f, SpeechProps as g, SpeechActionHandler as h, DirectiveEvent as i, UseSpeechOptions as j, UpdateMode as k, IconProps as l, SpeakingWord as m, ChildrenOptions as n, HighlightMode as o, SpeakProps as p, CleanupHandler as r, HighlightProps as s, Children as t, Index as u, SpeechQueueItem as v, SpeechSynthesisEventHandler as w, SpeechSynthesisBoundaryEvent as x, SpeechStatus as y };