import { StackFrame } from "error-stack-parser"; import { Observable, Subscriber, Subscription } from "rxjs"; import { Spy } from "../spy-interface"; import { SubscriberRef, SubscriptionRef } from "../subscription-ref"; import { BasePlugin } from "./plugin"; export interface SnapshotRef { complete: boolean; error: any; tick: number; timestamp: number; unsubscribed: boolean; values: { tick: number; timestamp: number; value: any; }[]; valuesFlushed: number; } export declare function getSnapshotRef(ref: SubscriberRef): SnapshotRef; export interface Snapshot { observables: Map, ObservableSnapshot>; subscribers: Map, SubscriberSnapshot>; subscriptions: Map; tick: number; mapStackTraces(observableSnapshots: ObservableSnapshot[]): Observable; mapStackTraces(subscriberSnapshots: SubscriberSnapshot[]): Observable; mapStackTraces(subscriptionSnapshots: SubscriptionSnapshot[]): Observable; } export interface ObservableSnapshot { id: string; observable: Observable; path: string; subscriptions: Map; tag: string | undefined; tick: number; type: string; } export interface SubscriberSnapshot { id: string; subscriber: Subscriber; subscriptions: Map; tick: number; values: { tick: number; timestamp: number; value: any; }[]; valuesFlushed: number; } export interface SubscriptionSnapshot { complete: boolean; error: any; flattenings: Map; flatteningsFlushed: number; id: string; mappedStackTrace: Observable; observable: Observable; rootSink: SubscriptionSnapshot | undefined; sink: SubscriptionSnapshot | undefined; sources: Map; sourcesFlushed: number; stackTrace: StackFrame[]; subscriber: Subscriber; subscription: Subscription; tick: number; timestamp: number; unsubscribed: boolean; } export declare class SnapshotPlugin extends BasePlugin { private keptValues_; private sentinel_; private spy_; constructor(spy: Spy, { keptValues }?: { keptValues?: number; }); afterUnsubscribe(ref: SubscriptionRef): void; beforeComplete(ref: SubscriptionRef): void; beforeError(ref: SubscriptionRef, error: any): void; beforeNext(ref: SubscriptionRef, value: any): void; beforeSubscribe(ref: SubscriberRef): void; snapshotAll({ since }?: { since?: Snapshot; }): Snapshot; snapshotObservable(ref: SubscriptionRef): ObservableSnapshot | undefined; snapshotSubscriber(ref: SubscriptionRef): SubscriberSnapshot | undefined; private addSubscriptionRefs_; private getSubscriptionRefs_; }