import { ContentChild, ContentChildren, EventEmitter, Type, ViewChild, ViewChildren } from "@angular/core"; import { NextObserver, Observable, Subject, Subscription } from "rxjs"; export interface Check { check(): void; } export interface CheckSubject extends Observable { readonly value: T | U; readonly __check_phase: CheckPhase; } export declare type CheckPhase = 5 | 6 | 7; export declare type State = Type<{ [key in keyof T]: T[key] extends CheckSubject ? R : T[key]; } & { [key in keyof U]: U[key] extends CheckSubject ? R : U[key] extends EventEmitter ? (value: R) => void : U[key]; }>; export declare type UnsubscribeSignal = Subscription | AbortSignal | null; export declare type Value = CheckSubject & NextObserver & { readonly __ng_value: true; (value: void): T; (mutate: (value: T) => any): void; (value: T): void; next(value: T): void; onChanges(handler: (previous: T, current: T) => void): () => void; onError(handler: (error: unknown) => Observable | void): () => void; }; export declare type DeferredValue = CheckSubject & NextObserver & { readonly __ng_value: true; (value: void): T | undefined; (mutate: (value: T) => any): void; (value: T): T | undefined; next(value: T): void; onChanges(handler: (previous: T, current: T) => void): () => void; onError(handler: (error: unknown) => Observable | void): () => void; }; export interface ReadonlyValue extends CheckSubject { readonly __ng_value: true; (value: void): T; onChanges(handler: (previous: T, current: T) => void): () => void; onError(handler: (error: unknown) => Observable | void): () => void; } export interface Accessor { next: ((value: U) => void) | NextObserver; value: Observable | (() => T); } export interface AccessorValue extends CheckSubject { readonly __ng_value: true; readonly __ng_accessor_value: true; readonly value: T; (value: void): T; (mutate: (value: U) => any): void; (value: U): void; next(value: U): void; onChanges(handler: (previous: T, current: T) => void): () => void; onError(handler: (error: unknown) => Observable | void): () => void; } export declare type NoCheck = Omit; export interface EmitterWithParams any> extends EventEmitter> { readonly __ng_emitter: true; (...params: Parameters): void; } export interface Emitter extends EventEmitter { readonly __ng_emitter: true; (value: T): void; } export declare type QueryType = typeof ContentChild | typeof ViewChild; export declare type QueryListType = typeof ViewChildren | typeof ContentChildren; export interface NoCheckValueOptions { immediate?: boolean; check: false; subject?: Subject; } export interface ValueOptions { behavior?: boolean; immediate?: boolean; check?: (oldValue: T, newValue: T) => boolean; subject?: Subject; } export interface NoCheckDeferredValueOptions extends NoCheckValueOptions { initial: T; } export interface DeferredValueOptions extends ValueOptions { initial: T; } export declare type ExpandValue = T extends Value ? R : true extends TPartial ? T extends any[] ? T : { [key in keyof T]?: ExpandValue; } : T extends any[] ? T : { [key in keyof T]: ExpandValue; }; export interface ErrorState { error: unknown; message?: string; retries: number; } export declare type Change = { current: T; previous: undefined; first: true; } | { current: T; previous: T; first: false; };