import { DisposableStack, disposeSymbol } from '@mui/x-internals/disposable'; import type { SchedulerSchedulingPluginInterface, SchedulerState, SchedulerParameters, UpdateEventsParameters, SchedulerStore } from '@mui/x-scheduler-internals/internals'; import type { SchedulerAddDependencyResult, SchedulerDependencyCreationProperties, SchedulerDependencyId, SchedulerDependenciesParameters, SchedulerDependenciesState } from "../../models/index.mjs"; /** * Plugin that provides event-scheduling support (dependencies). * Composed by the timeline premium store and injected into `SchedulerStore` through * `SchedulerSchedulingPluginInterface`. */ export declare class SchedulerSchedulingPlugin & SchedulerDependenciesParameters> implements SchedulerSchedulingPluginInterface { protected store: SchedulerStore; protected readonly disposables: DisposableStack; constructor(store: SchedulerStore); [disposeSymbol](): void; private updateDependencies; /** * Emits `onDependenciesChange` with `remaining` only if it actually dropped entries from * `current`, so unaffected updates don't trigger a no-op emission. */ private updateDependenciesIfChanged; /** * Removes the dependencies referencing deleted events, in the same update. * * With a `dataSource`, event deletions are persisted asynchronously after this hook has * already emitted `onDependenciesChange`. If that persistence fails, the event survives but * its dependencies were already removed — a known v1 limitation, there is no rollback. */ handleEventsUpdate: (parameters: UpdateEventsParameters) => void; /** * Adds a dependency between two events. * Rejects dependencies referencing an unknown or recurring event, or duplicating an * existing dependency. * Implementation of the store's `addDependency()` — call it through the store. */ addDependency: (properties: SchedulerDependencyCreationProperties) => SchedulerAddDependencyResult; /** * Deletes a dependency. * Implementation of the store's `deleteDependency()` — call it through the store. */ deleteDependency: (dependencyId: SchedulerDependencyId) => void; private warnOnInvalidDependencies; }