import { Observable, Subject, Subscription, MonoTypeOperatorFunction } from 'rxjs'; import { Scope } from '../store/index.js'; import { ActionReducer, ReducerConfiguration } from '../store/reducer.type.js'; import { ActionConfig } from './action-config.interface.js'; import { ActionPacket } from './action-packet.interface.js'; export type ActionTuple = { [K in keyof T]: Action; }; export type ActionDispatch = () => void; /** * TODO: Actions should be able to switch or hold multiple scopes * TODO: .and method to chain actions for multireducers and multieffects */ export declare class Action extends Subject { type: string; private dispatchSubscription?; private config; private scope; registrations: Subscription; /** * This will emit every action of this type, both direct dispatches and * effect dispatches */ get listenPackets$(): Observable>; /** * This won't receive actions from effects */ get listen$(): Observable; private actionPipeline; /** * TODO: Make this private, refactor angular solution * @param type * @param config */ constructor(type: string, config?: Partial); register(scope: Scope): this; unregister(): void; makePacket(payload: Payload): ActionPacket; /** * The finalize operator will take care of removing it from the actionMap */ complete(): void; /** * */ getFilter(): MonoTypeOperatorFunction>; static makeFilter(...actions: [...ActionTuple]): MonoTypeOperatorFunction>; reduce(actionReducer: ActionReducer): ReducerConfiguration; } //# sourceMappingURL=action.class.d.ts.map