import { IContainer, ILogger } from '@aurelia/kernel'; import { Observable } from 'rxjs'; import { HistoryOptions } from './history'; import { Middleware, MiddlewarePlacement } from './middleware'; import { LogDefinitions } from './logging'; import { DevToolsOptions, DevToolsExtension } from './devtools'; export type Reducer = (state: T, ...params: P) => T | false | Promise; export declare enum PerformanceMeasurement { StartEnd = "startEnd", All = "all" } export interface StoreOptions { history?: Partial; logDispatchedActions?: boolean; measurePerformance?: PerformanceMeasurement; propagateError?: boolean; logDefinitions?: LogDefinitions; devToolsOptions?: DevToolsOptions; } export interface PipedDispatch { pipe:

(reducer: Reducer | string, ...params: P) => PipedDispatch; dispatch: () => Promise; } export declare const STORE: { container: IContainer; }; export interface IStoreWindow extends Window { devToolsExtension?: DevToolsExtension; __REDUX_DEVTOOLS_EXTENSION__?: DevToolsExtension; } export declare class UnregisteredActionError extends Error { constructor(reducer?: string | Reducer); } export declare class DevToolsRemoteDispatchError extends Error { } export declare class ActionRegistrationError extends Error { } export declare class ReducerNoStateError extends Error { } export interface MiddlewareSettings { placement: MiddlewarePlacement; settings?: unknown; } export declare class Store { private readonly initialState; private readonly logger; private readonly _window; readonly state: Observable; private devToolsAvailable; private devTools?; private readonly actions; private readonly middlewares; private readonly _state; private readonly options; private readonly dispatchQueue; constructor(initialState: T, logger: ILogger, _window: IStoreWindow, options?: Partial); registerMiddleware(reducer: Middleware, placement: MiddlewarePlacement): void; registerMiddleware>(reducer: Middleware, placement: MiddlewarePlacement, settings: S): void; unregisterMiddleware(reducer: Middleware): void; isMiddlewareRegistered(middleware: Middleware): boolean; registerAction(name: string, reducer: Reducer): void; unregisterAction(reducer: Reducer): void; isActionRegistered(reducer: Reducer | string): boolean; resetToState(state: T): void; dispatch

(reducer: Reducer | string, ...params: P): Promise; pipe

(reducer: Reducer | string, ...params: P): PipedDispatch; private lookupAction; private queueDispatch; private handleQueue; private internalDispatch; private executeMiddlewares; private setupDevTools; private updateDevToolsState; private registerHistoryMethods; } export declare function dispatchify(action: Reducer | string): (...params: P) => Promise; //# sourceMappingURL=store.d.ts.map