import type { INotifyPropertiesChanged } from './INotifyPropertiesChanged'; import type { IPropertiesChangedEvent } from './IPropertiesChangedEvent'; /** * Represents a base view model class providing core features. */ export declare abstract class ViewModel implements INotifyPropertiesChanged { private readonly _propertiesChangedEvent; /** * Initializes a new instance of the {@linkcode ViewModel} class. */ constructor(); /** * An event that is raised when one or more properties may have changed. */ get propertiesChanged(): IPropertiesChangedEvent; /** * Notifies all observers that the provided properties may have changed. * @param changedProperty The name of the property that may have changed. * @param otherChangedProperties The name of other properties that may have changed. */ protected notifyPropertiesChanged(changedProperty: keyof this, ...otherChangedProperties: readonly (keyof this)[]): void; }