import { CreateObserverConfigInterface, CreateRuntimeJobConfigInterface, IngestConfigInterface, Observer, RuntimeJob } from '../../runtime'; import type { Group } from './index'; import { DefaultItem } from '../collection'; export declare class GroupObserver extends Observer { group: () => Group; nextGroupValue: DataType[]; /** * A Group Observer manages the subscriptions to Subscription Containers (UI-Components) * and dependencies to other Observers (Agile Classes) * for a Group Class. * * @internal * @param group - Instance of Group the Observer belongs to. * @param config - Configuration object */ constructor(group: Group, config?: CreateObserverConfigInterface); /** * Rebuilds the Group and passes the Group Observer * into the runtime wrapped into a Runtime-Job * where it is executed accordingly. * * During the execution the runtime applies the `nextGroupOutput` to the Group, * updates its dependents and re-renders the UI-Components it is subscribed to. * * @internal * @param config - Configuration object */ ingest(config?: GroupIngestConfigInterface): void; /** * Passes the Group Observer into the runtime wrapped into a Runtime-Job * where it is executed accordingly. * * During the execution the runtime applies the specified `nextGroupOutput` to the Group, * updates its dependents and re-renders the UI-Components it is subscribed to. * * @internal * @param newGroupOutput - New Group Output to be applied to the Group. * @param config - Configuration object. */ ingestOutput(newGroupOutput: DataType[], config?: GroupIngestConfigInterface): void; /** * Method executed by the Runtime to perform the Runtime-Job, * previously ingested via the `ingest()` or `ingestItems()` method. * * Thereby the previously defined `nextGroupOutput` is assigned to the Group. * * @internal * @param job - Runtime-Job to be performed. */ perform(job: RuntimeJob): void; } export interface GroupIngestConfigInterface extends CreateRuntimeJobConfigInterface, IngestConfigInterface { }