import * as Redux from 'redux'; import { AdaptableState } from '../../../AdaptableState/AdaptableState'; import { InitialState } from '../../../types'; import { IAdaptable } from '../../../AdaptableInterfaces/IAdaptable'; export interface LoadStoreConfig { adaptable: IAdaptable; adaptableStateKey: string; initialState?: InitialState; postLoadHook?: (state: AdaptableState) => AdaptableState; } export interface IAdaptableStore { TheStore: Redux.Store; Load: Promise; loadStore: (config: LoadStoreConfig) => Promise; getCurrentStorageState: () => AdaptableState | void; getPreviousStorageState: () => AdaptableState | void; saveStateNow: (adaptable: IAdaptable, state?: AdaptableState) => Promise; on: (eventName: string, callback: (data?: any) => any) => () => void; onAny: (callback: (eventName: string, data?: any) => any) => () => void; onBeforeAny: (callback: (eventName: string, data?: any) => any) => () => void; emit: (eventName: string, data: any) => Promise; destroy: () => void; }