import { ChangeDetectorRef, ErrorHandler, InjectFlags, Injector, ProviderToken, Type } from "@angular/core"; import { PartialObserver, Subject, Subscribable, Subscription, TeardownLogic, Unsubscribable } from "rxjs"; import { AccessorValue, Check, CheckPhase, CheckSubject, UnsubscribeSignal, Value } from "./interfaces"; import { ValueToken } from "./provider"; import { ComputedValue } from "./types"; export declare type CurrentContext = [ Subscription | undefined, EffectObserver[] | undefined, ErrorHandler | undefined, Injector | undefined, Scheduler | undefined, Set | undefined, Set | undefined, Set | undefined ]; export declare let currentContext: any; export declare function setContext(value: any): any; export declare class CallContextError extends Error { constructor(); } export declare function getContext(key: T): CurrentContext[T]; interface ServiceOptions { name?: string; arguments?: any[]; providedIn: ProvidedIn; } export declare class Scheduler extends Subject { private ref; private errorHandler; private isComponent; private dirty; closed: boolean; detectChanges(): void; markDirty(): void; unsubscribe(): void; constructor(ref: ChangeDetectorRef, errorHandler: ErrorHandler, isComponent: boolean); } export declare function check(key: CheckPhase): void; export declare function subscribe(): void; export declare function unsubscribe(): void; export declare function addCheck(key: CheckPhase, subject: any): void; export declare function addTeardown(teardown: TeardownLogic): void; export declare function addSignal(teardown?: Unsubscribable | (() => void), abort?: UnsubscribeSignal): void; export declare function addEffect(source?: Subscribable | (() => TeardownLogic), observer?: PartialObserver | ((value: T) => TeardownLogic), signal?: UnsubscribeSignal): Subscription; export declare function detectChanges(): void; export declare class EffectObserver extends Subscription { source?: Subscribable | ComputedValue | undefined; observer?: PartialObserver | ((value: any) => TeardownLogic) | undefined; signal?: UnsubscribeSignal | undefined; private errorHandler?; private injector?; context: this; next(nextValue: unknown): void; error(error: unknown): void; complete(): void; handleError(error: unknown): void; call(kind: "N" | "E" | "C", value?: unknown, error?: unknown): void; observe(effect: this, kind: "N" | "E" | "C", value: unknown, error: unknown): void; unsubscribe(): void; subscribe(): this; constructor(source?: Subscribable | ComputedValue | undefined, observer?: PartialObserver | ((value: any) => TeardownLogic) | undefined, signal?: UnsubscribeSignal | undefined, errorHandler?: ErrorHandler | undefined, injector?: Injector | undefined); } export declare function decorate(setup: any): any; export declare type ProvidedIn = Type | "root" | "platform" | "any" | null; export interface ServiceStatic { new (factory: (...params: any[]) => T, options?: ServiceOptions): Type; } export declare const Service: ServiceStatic; export declare function inject(token: ValueToken, notFoundValue?: T, flags?: InjectFlags): T; export declare function inject(token: ProviderToken, notFoundValue?: T, flags?: InjectFlags): T; export declare function ViewDef(create: () => T): ViewDef; declare type Readonly = { readonly [key in keyof T as T[key] extends AccessorValue ? A extends B ? never : key : T[key] extends Value ? never : key]: T[key] extends CheckSubject ? R : T[key]; }; declare type Writable = { [key in keyof T]: T[key] extends CheckSubject ? R : T[key]; }; export declare type ViewDef & Writable> = Type; export {};