UNPKG

4.14 kBTypeScriptView Raw
1import { Provider } from '@angular/core';
2import { Observable, Observer, Operator } from 'rxjs';
3import { ActionsSubject } from './actions_subject';
4import { Action, ActionReducer, FunctionIsNotAllowed } from './models';
5import { ReducerManager } from './reducer_manager';
6import { StateObservable } from './state';
7export declare class Store<T = object> extends Observable<T> implements Observer<Action> {
8 private actionsObserver;
9 private reducerManager;
10 constructor(state$: StateObservable, actionsObserver: ActionsSubject, reducerManager: ReducerManager);
11 select<K>(mapFn: (state: T) => K): Observable<K>;
12 select<K, Props = any>(mapFn: (state: T, props: Props) => K, props: Props): Observable<K>;
13 select<a extends keyof T>(key: a): Observable<T[a]>;
14 select<a extends keyof T, b extends keyof T[a]>(key1: a, key2: b): Observable<T[a][b]>;
15 select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b]>(key1: a, key2: b, key3: c): Observable<T[a][b][c]>;
16 select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c]>(key1: a, key2: b, key3: c, key4: d): Observable<T[a][b][c][d]>;
17 select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d]>(key1: a, key2: b, key3: c, key4: d, key5: e): Observable<T[a][b][c][d][e]>;
18 select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d], f extends keyof T[a][b][c][d][e]>(key1: a, key2: b, key3: c, key4: d, key5: e, key6: f): Observable<T[a][b][c][d][e][f]>;
19 select<a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d], f extends keyof T[a][b][c][d][e], K = any>(key1: a, key2: b, key3: c, key4: d, key5: e, key6: f, ...paths: string[]): Observable<K>;
20 lift<R>(operator: Operator<T, R>): Store<R>;
21 dispatch<V extends Action = Action>(action: V & FunctionIsNotAllowed<V, 'Functions are not allowed to be dispatched. Did you forget to call the action creator function?'>): void;
22 next(action: Action): void;
23 error(err: any): void;
24 complete(): void;
25 addReducer<State, Actions extends Action = Action>(key: string, reducer: ActionReducer<State, Actions>): void;
26 removeReducer<Key extends Extract<keyof T, string>>(key: Key): void;
27}
28export declare const STORE_PROVIDERS: Provider[];
29export declare function select<T, Props, K>(mapFn: (state: T, props: Props) => K, props?: Props): (source$: Observable<T>) => Observable<K>;
30export declare function select<T, a extends keyof T>(key: a): (source$: Observable<T>) => Observable<T[a]>;
31export declare function select<T, a extends keyof T, b extends keyof T[a]>(key1: a, key2: b): (source$: Observable<T>) => Observable<T[a][b]>;
32export declare function select<T, a extends keyof T, b extends keyof T[a], c extends keyof T[a][b]>(key1: a, key2: b, key3: c): (source$: Observable<T>) => Observable<T[a][b][c]>;
33export declare function select<T, a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c]>(key1: a, key2: b, key3: c, key4: d): (source$: Observable<T>) => Observable<T[a][b][c][d]>;
34export declare function select<T, a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d]>(key1: a, key2: b, key3: c, key4: d, key5: e): (source$: Observable<T>) => Observable<T[a][b][c][d][e]>;
35export declare function select<T, a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d], f extends keyof T[a][b][c][d][e]>(key1: a, key2: b, key3: c, key4: d, key5: e, key6: f): (source$: Observable<T>) => Observable<T[a][b][c][d][e][f]>;
36export declare function select<T, a extends keyof T, b extends keyof T[a], c extends keyof T[a][b], d extends keyof T[a][b][c], e extends keyof T[a][b][c][d], f extends keyof T[a][b][c][d][e], K = any>(key1: a, key2: b, key3: c, key4: d, key5: e, key6: f, ...paths: string[]): (source$: Observable<T>) => Observable<K>;