import { Middleware, Store } from 'redux'; type GlobalScopeClock = { cancelAnimationFrame?: typeof cancelAnimationFrame | undefined; cancelIdleCallback?: typeof cancelIdleCallback | undefined; clearImmediate?: typeof clearImmediate | undefined; clearInterval?: typeof clearInterval | undefined; clearTimeout?: typeof clearTimeout | undefined; Date: typeof Date; requestAnimationFrame?: typeof requestAnimationFrame | undefined; requestIdleCallback?: typeof requestIdleCallback | undefined; setImmediate?: typeof setImmediate | undefined; setInterval?: typeof setInterval | undefined; setTimeout?: typeof setTimeout | undefined; }; /** * Ponyfills that are supported by Web Chat. * * If ponyfill is passed, Web Chat will use this ponyfill rather than the one from `globalThis` or `window` object. */ type GlobalScopePonyfill = GlobalScopeClock; type CreateStoreOptions = { /** * True, to enable Redux development tools, otherwise, false. * * Because Web Chat use sagas for business logics, some store state are keep at JavaScript heaps. * Time-travelling and saving/restoring store state are not supported. */ devTools?: boolean; /** * Ponyfill to overrides specific global scope members. * * This option is for development use only. Not all features in Web Chat are ponyfilled. * * To fake timers, `setTimeout` and related functions can be passed to overrides the original global scope members. * * Please see [#4662](https://github.com/microsoft/BotFramework-WebChat/pull/4662) for details. */ ponyfill?: Partial; }; /** * Creates a Redux store internally used by Web Chat. * * This store is critical for Web Chat business logics to operate, please use with cautions. */ declare function withOptions(options: CreateStoreOptions, initialState?: any | undefined, ...middlewares: readonly Middleware[]): Store; /** * Creates a Redux store internally used by Web Chat. * * This store is critical for Web Chat business logics to operate, please use with cautions. */ declare function createStore(initialState?: any, ...middlewares: readonly Middleware[]): Store; /** * Creates a Redux store internally used by Web Chat, with Redux development tools. * * This store is critical for Web Chat business logics to operate, please use with cautions. * * @deprecated Use `withOptions` instead and pass `{ devTools: true }` */ declare function withDevTools(initialState?: any, ...middlewares: readonly Middleware[]): Store; export { withOptions as a, createStore as c, withDevTools as w }; export type { GlobalScopePonyfill as G };