UNPKG

@antischematic/angular-state-library

Version:
27 lines (26 loc) 1.47 kB
import { Injector, ProviderToken, Type } from "@angular/core"; import { BehaviorSubject, Observable, Observer, Subscription } from "rxjs"; import { TypedChanges } from "./interfaces"; export declare function slice<T extends {}, U extends keyof T>(token: ProviderToken<T>, key: U, injector?: Injector): Observable<T[U]>; export declare function slice<T extends {}, U extends (keyof T)[]>(token: ProviderToken<T>, key: U, injector?: Injector): Observable<Pick<T, U[number]>>; export declare function store<T extends {}>(token: ProviderToken<T>, injector?: Injector): Observable<T>; export declare function inputs<T>(token: ProviderToken<T>, injector?: Injector): Observable<TypedChanges<T>>; export interface WithStateOptions<T> { from?: Observable<T>; } export interface WithState<T> { source: Observable<T>; destination: BehaviorSubject<T>; } export interface Selector { new <T>(name: string, factory: (source: Observable<T>) => WithState<T>): Type<BehaviorSubject<T>>; new <T>(name: string, factory: (source: Observable<T>) => Observable<T>): Type<BehaviorSubject<T> & { value: T | undefined; }>; } export declare function withState<T>(initial: T, options?: WithStateOptions<T>): WithState<T>; export declare const Selector: Selector; export declare function subscribe<T extends {}>(token: ProviderToken<T> | undefined, directive: any, key: string): any; export interface OnSelect { ngOnSelect(observer: Observer<any>): Subscription; }