import { SelectedScript } from './SelectedScript'; import { IScript } from '@/domain/IScript'; import { ICategory } from '@/domain/ICategory'; import { ISignal } from '@/infrastructure/Events/ISignal'; export interface IUserSelection { readonly changed: ISignal>; readonly selectedScripts: ReadonlyArray; readonly totalSelected: number; areAllSelected(category: ICategory): boolean; isAnySelected(category: ICategory): boolean; removeAllInCategory(categoryId: number): void; addOrUpdateAllInCategory(categoryId: number, revert: boolean): void; addSelectedScript(scriptId: string, revert: boolean): void; addOrUpdateSelectedScript(scriptId: string, revert: boolean): void; removeSelectedScript(scriptId: string): void; selectOnly(scripts: ReadonlyArray): void; isSelected(scriptId: string): boolean; selectAll(): void; deselectAll(): void; }