import { MicrosoftSpeechPayload } from "../../core/MicrosoftSpeechTTS/createMicrosoftSpeech.mjs";
import { MicrosoftSpeechAPI } from "../../core/MicrosoftSpeechTTS/index.mjs";
import { AudioProps } from "../AudioPlayer/index.mjs";
import { TTSOptions } from "../useTTS/index.mjs";
import * as react from "react";
import * as swr from "swr";
import * as swr__internal0 from "swr/_internal";

//#region src/react/useMicrosoftSpeech/index.d.ts
interface MicrosoftSpeechOptions extends Pick<MicrosoftSpeechPayload, 'options'>, TTSOptions {
  api?: MicrosoftSpeechAPI;
  locale?: string;
}
declare const useMicrosoftSpeech: (defaultText: string, init: MicrosoftSpeechOptions) => {
  audio: AudioProps & {
    arrayBuffers: ArrayBuffer[];
  };
  canStart: boolean;
  isGlobalLoading: boolean;
  isLoading: boolean;
  start: () => void;
  stop: () => void;
  errorRetryInterval?: number | undefined;
  errorRetryCount?: number | undefined;
  loadingTimeout?: number | undefined;
  focusThrottleInterval?: number | undefined;
  dedupingInterval?: number | undefined;
  refreshInterval?: number | ((latestData: any) => number) | undefined;
  refreshWhenHidden?: boolean | undefined;
  refreshWhenOffline?: boolean | undefined;
  revalidateOnFocus?: boolean | undefined;
  revalidateOnReconnect?: boolean | undefined;
  revalidateOnMount?: boolean | undefined;
  revalidateIfStale?: boolean | undefined;
  shouldRetryOnError?: boolean | ((err: any) => boolean) | undefined;
  keepPreviousData?: boolean | undefined;
  suspense?: boolean | undefined;
  fallbackData?: any;
  strictServerPrefetchWarning?: boolean | undefined;
  fetcher?: swr.BareFetcher<any> | undefined;
  use?: swr.Middleware[] | undefined;
  fallback?: {
    [key: string]: any;
  } | undefined;
  isPaused?: (() => boolean) | undefined;
  onLoadingSlow?: ((key: string, config: Readonly<swr__internal0.PublicConfiguration<any, any, swr.BareFetcher<any>>>) => void) | undefined;
  onSuccess?: ((data: any, key: string, config: Readonly<swr__internal0.PublicConfiguration<any, any, swr.BareFetcher<any>>>) => void) | undefined;
  onError?: ((err: any, key: string, config: Readonly<swr__internal0.PublicConfiguration<any, any, swr.BareFetcher<any>>>) => void) | undefined;
  onErrorRetry?: ((err: any, key: string, config: Readonly<swr__internal0.PublicConfiguration<any, any, swr.BareFetcher<any>>>, revalidate: swr.Revalidator, revalidateOpts: Required<swr.RevalidatorOptions>) => void) | undefined;
  onDiscarded?: ((key: string) => void) | undefined;
  compare?: ((a: any, b: any) => boolean) | undefined;
  isOnline?: (() => boolean) | undefined;
  isVisible?: (() => boolean) | undefined;
  initFocus?: ((callback: () => void) => (() => void) | void) | undefined;
  initReconnect?: ((callback: () => void) => (() => void) | void) | undefined;
  provider?: (cache: Readonly<swr.Cache>) => swr.Cache;
  error: any;
  mutate: swr.KeyedMutator<any>;
  response: Response | undefined;
  setText: react.Dispatch<react.SetStateAction<string>>;
};
//#endregion
export { MicrosoftSpeechOptions, useMicrosoftSpeech };