export { DepartmentRenderer } from './DepartmentRenderer';
export { DepartmentService } from './DepartmentService';
export { DepartmentStore } from './DepartmentStore';
export type { IDepartment } from '../../types/CalendarTypes';

// DI registration helper
import type { Builder } from '@novadi/core';
import { IRenderer } from '../../core/IGroupingRenderer';
import { IStore } from '../../storage/IStore';
import { IEntityService } from '../../storage/IEntityService';
import type { IDepartment, ISync } from '../../types/CalendarTypes';
import { DepartmentStore } from './DepartmentStore';
import { DepartmentService } from './DepartmentService';
import { DepartmentRenderer } from './DepartmentRenderer';

export function registerDepartments(builder: Builder): void {
  builder.registerType(DepartmentStore).as<IStore>();
  builder.registerType(DepartmentService).as<IEntityService<IDepartment>>();
  builder.registerType(DepartmentService).as<IEntityService<ISync>>();
  builder.registerType(DepartmentService).as<DepartmentService>();
  builder.registerType(DepartmentRenderer).as<IRenderer>();
}
