import { NoArgsWithoutReturnFunctionType, SubscriberCbType } from "./Observable"; import { NotifyTypeEn, SubscriptionObserver } from "./SubscriptionObserver"; export declare enum SubscriptionStateEn { INITIALIZING = "initializing", RUNNING = "running", BUFFERING = "buffering", READY = "ready", CLOSED = "closed" } export interface ObserverCbType { nextCb: (val?: T) => void; completeCb?: NoArgsWithoutReturnFunctionType; } export declare class Subscription { _subscriptionObserver: SubscriptionObserver; /** * 订阅状态: * initializing: 初始化 * buffering: 缓存新消息过程中,结束后通过微任务统一处理 * running: 在执行 next / complete 过程中 * ready: 准备就绪,等待接收新消息到来,并执行 observerCb * closed: 订阅结束,不再对到来的新消息执行 observerCb */ _state: SubscriptionStateEn; _queue: { type: NotifyTypeEn; value?: T; }[]; _observerCb?: ObserverCbType; _cleanupCb?: NoArgsWithoutReturnFunctionType | void; constructor(observerCb: ((val?: T) => void) | ObserverCbType, subscriberCb: SubscriberCbType); /** 判断本次订阅是否已经关闭 */ get isClosed(): boolean; /** * 关闭订阅,清理 subscription 内部维护的状态 */ unsubscribe(): void; }