UNPKG

@antischematic/angular-state-library

Version:
37 lines (36 loc) 2.71 kB
import { InjectionToken, Injector, ProviderToken } from "@angular/core"; import { Observable } from "rxjs"; import { CompleteEvent, DispatchEvent, ErrorEvent, ExtractEvents, NextEvent, StoreConfig, ZoneCompatible } from "./interfaces"; export declare function isPlainObject(obj: object): boolean; export declare function call(target: Record<any, any>, key: string, ...args: any[]): any; export declare function wrap(target: { [key: PropertyKey]: any; }, property: PropertyKey, fn: (this: any, ...args: any[]) => any): boolean; export declare function noop(): void; export declare const UID: InjectionToken<() => number>; export declare function events<T>(token: ProviderToken<T>, injector?: Injector): Observable<ExtractEvents<T, Extract<keyof T, string>>>; export declare function events<T>(context: T): Observable<ExtractEvents<T, Extract<keyof T, string>>>; export declare function configureStore(config: StoreConfig): { provide: InjectionToken<StoreConfig>; useValue: StoreConfig; }; export declare function observeInZone<T>(source: Observable<T>, zone: ZoneCompatible): Observable<T>; export declare function get<T extends { value: unknown; }>(token: ProviderToken<T>): T["value"]; export declare function set<T extends { value: unknown; next: (value: T["value"]) => void; }>(token: ProviderToken<T>, value: T["value"]): void; declare type ActionParams<T> = T extends (...params: infer Params) => any ? Params extends { length: 1; } ? Params[0] : Params : never; export declare function actionEvent<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<DispatchEvent>; export declare function action<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<ActionParams<T[TKey]>>; export declare function nextEvent<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<NextEvent>; export declare function next<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<T[TKey] extends () => infer R ? R extends Observable<infer S> ? S : never : never>; export declare function errorEvent<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<ErrorEvent>; export declare function error<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<unknown>; export declare function completeEvent<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<CompleteEvent>; export declare function complete<T, TKey extends keyof T>(token: ProviderToken<T>, name: TKey, injector?: Injector): Observable<void>; export {};