import { AnyAction, Dispatch, Store, Unsubscribe } from 'redux'; import { AppHost, ExtensionSlot, ObservableState, ReducersMapObjectContributor, Shell } from './API'; import { AppHostServicesProvider } from './appHostServices'; type ReducerNotificationScope = 'broadcasting' | 'observable'; export interface StateContribution { reducerFactory: ReducersMapObjectContributor; notificationScope: ReducerNotificationScope; observable?: AnyPrivateObservableState; } export interface ThrottledStore extends Store { hasPendingSubscribers(): boolean; flush(config?: { excecutionType: 'scheduled' | 'immediate' | 'default'; }): void; deferSubscriberNotifications(action: () => K | Promise, shouldDispatchClearCache?: boolean): Promise; } export interface PrivateThrottledStore extends ThrottledStore { broadcastNotify(): void; observableNotify(observer: AnyPrivateObservableState): void; resetPendingNotifications(): void; syncSubscribe(listener: () => void): Unsubscribe; dispatchWithShell(shell: Shell): Dispatch; } export interface PrivateObservableState extends ObservableState { notify(): void; } export type AnyPrivateObservableState = PrivateObservableState; export declare const updateThrottledStore: (host: AppHost & AppHostServicesProvider, store: PrivateThrottledStore, contributedState: ExtensionSlot) => void; export declare const createThrottledStore: (host: AppHost & AppHostServicesProvider, contributedState: ExtensionSlot, updateIsSubscriptionNotifyInProgress: (isSubscriptionNotifyInProgress: boolean) => void, updateIsObserversNotifyInProgress: (isObserversNotifyInProgress: boolean) => void, updateShouldFlushMemoizationSync: (shouldFlushMemoizationSync: boolean) => void) => PrivateThrottledStore; export declare const createObservable: (shell: Shell, uniqueName: string, selectorFactory: (state: TState) => TSelector) => PrivateObservableState; export {}; //# sourceMappingURL=throttledStore.d.ts.map