import { IDisposable, Undefinable } from '../Types'; import { IEnumerable } from '../Enumerables/_types'; import { INotifyPropertyChanged, INotifyComponentPropertyChangedEventArgs, INotifyPropertyChangedEventArgs } from '../INotifyPropertyChanged'; import { IEvent } from '../Events/_types'; type Props = Undefinable; export interface IComponent extends INotifyPropertyChanged, IDisposable { readonly props: TProps; readonly components: IEnumerable; readonly propertyChanged: IEvent; init(): void; } export default abstract class Component implements IComponent { #private; constructor(props: TProps, components?: IEnumerable); get components(): IEnumerable>; get propertyChanged(): IEvent; get props(): TProps; init(): void; dispose(): void; } export {};