export interface Subscription { closed?: boolean; unsubscribe(): void; } export interface NextObserver { closed?: boolean; next: (value: T) => void; error?: (reason: any) => void; complete?: () => void; start?: (subscription: Subscription) => void; } export interface ErrorObserver { closed?: boolean; next?: (value: T) => void; error: (reason: any) => void; complete?: () => void; start?: (subscription: Subscription) => void; } export interface CompletionObserver { closed?: boolean; next?: (value: T) => void; error?: (reason: any) => void; complete: () => void; start?: (subscription: Subscription) => void; } export declare type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; export interface SubscriptionObserver { closed?: boolean; next: (value: T) => void; error: (reason: any) => void; complete: () => void; } export declare type Disposer = void | (() => void) | ({ unsubscribe: () => void; }) | Subscription; export declare type Subscriber = (observer: SubscriptionObserver) => Disposer; export interface Subscribable { closed?: boolean; subscribe(next?: PartialObserver | ((value: T) => void), error?: (reason: any) => void, complete?: () => void): Subscription; } export declare type Unary = (arg: T) => R; export declare const enum SignalType { next = 0, error = 1, complete = 2 } export declare type ArrayValues = TS extends Array ? T : void;