import type { Signal } from '@angular/core'; import type { CuiNullable } from '@cuby-ui/cdk'; import { ListObjectInstruction, Resource, StorageObjectInstruction, Utility, UtilityComponent, UtilityComponentType, UtilityComponentWithInstructions, UtilityComponentWithResources, UtilitySubject } from '@cuby-ui/api'; import type { ResourceUtilityMaterial } from '../ui/resources-block/components'; export interface UtilityService { readonly instructions: Signal; readonly resources: Signal; readonly instructionComponent: Signal>; readonly resourcesComponent: Signal>; readonly utility: Signal>; setUtility(utility: Utility): void; setComponent(component: UtilityComponent): void; removeComponent(componentType: UtilityComponentType): void; addInstructions(instructions: ListObjectInstruction[]): void; updateInstruction(instruction: StorageObjectInstruction, id?: string): void; removeInstruction(instructionStorageId: string): void; updateInstructionTitle(instructionId: string, title: string): void; addResourceStructure(resource: Resource): void; removeResourceStructure(resourceId: string): void; addResources(resources: UtilitySubject[], containerId: string): void; updateResource(resource: UtilitySubject | ResourceUtilityMaterial, containerId: string): void; removeResource(resourceId: string, containerId: string): void; }