import type { ExternalData } from '../../../../libs/fsconnect'; import type { ResolverSeedData, ScopeWithPathToken } from '../../../../libs/fspropertybinding'; import type { Unsubscribable } from 'rxjs'; import type { DataRootsEvaluator } from './parser.utils'; import type { SelectiveContext } from './types'; /** * A RXJS subject used to control the react render logic while providing the resolver seed data * */ export declare class SelectiveContextSubject implements SelectiveContext { private readonly dataRootsEvaluator; value: ResolverSeedData; constructor(dataRootsEvaluator: DataRootsEvaluator | undefined, value?: ResolverSeedData); private readonly subscribers; private readonly subscription; /** * A rxjs subscribe function that reacts to resolver seed data changing * * @param dataRoots * @param callback - function that fires on each data change that the data roots describe * @return */ subscribe(dataRoots: readonly ScopeWithPathToken[], callback: (data: ResolverSeedData) => void): Unsubscribable; complete(): void; /** * A rxjs method where you can give the subject new resolver seed data, notifying the subject that something changed * * @param data * @param externalData - used to update resolver seed data */ next(data: ResolverSeedData, externalData?: ExternalData): void; }