import { AnyAction, ReducersMapObject, DeepPartial } from 'redux'; import { Logic } from 'redux-logic'; import { EvaStorage } from '@springtree/eva-sdk-core-storage'; import { IEvaReduxStoreEndpointShape, IEvaReduxStoreCurrentUserShape, IEvaReduxStoreCurrentOrderShape } from './state'; import { IEvaReduxStoreShoppingCartShape } from './state/shopping-cart'; /** * Build the EVA Redux store shape by extending our base functionality */ export interface IEvaReduxStoreDefaultShape extends IEvaReduxStoreEndpointShape, IEvaReduxStoreCurrentUserShape, IEvaReduxStoreShoppingCartShape, IEvaReduxStoreCurrentOrderShape { } export interface ICreateStoreParameters { reducers?: ReducersMapObject>; initialState?: DeepPartial; logics?: Logic[]; storage?: EvaStorage; storageKeyPrefix?: string; storageProperties?: (keyof STORAGE)[]; userTokenExpired?: (userToken: string) => void; } /** * This is the class to help you configure and build an EVA focused Redux store * * @export * @class StoreBuilder */ export declare class StoreBuilder { /** * This interceptor will detect expired user tokens for the this store instance * * @private * @type {EvaReduxServiceInterceptor} */ private userExpiredInterceptor?; /** * This interceptor will detect application tokens * * @private * @type {EvaReduxServiceInterceptor} */ private applicationTokenInterceptor?; /** * These are the default properties persisted to storage * If callers want to override properties but keep the defaults they * can include these values * * @type {string[]} */ readonly defaultStorageProperties: string[]; /** * Create a redux store based on the reducers added to the builder * * @param {*} [any] The initial state to use for the store * @returns */ createStore(params: ICreateStoreParameters, storageEventEmitter?: Window & typeof globalThis): import("redux").Store; } //# sourceMappingURL=store.d.ts.map