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, recurring or read-only event, or * duplicating an existing dependency. * Implementation of the store's `addDependency()` — call it through the store. */ addDependency: (properties: SchedulerDependencyCreationProperties) => SchedulerAddDependencyResult; /** * Deletes a dependency, returning whether it was deleted. Refused (`false`) for an * unknown id and when either endpoint event is read-only, so the store stays safe * regardless of which affordance calls it and the callers pairing the deletion with * a side effect (clearing the selection) never act on a no-op. * Implementation of the store's `deleteDependency()` — call it through the store. */ deleteDependency: (dependencyId: SchedulerDependencyId) => boolean; private warnOnInvalidDependencies; }