import { LaboratoryOperation } from './operations'; import { LaboratoryTabsActions, LaboratoryTabsState } from './tabs'; export interface LaboratoryCollectionOperation extends LaboratoryOperation { id: string; name: string; description: string; createdAt: string; } export interface LaboratoryCollection { id: string; name: string; description?: string; createdAt: string; operations: LaboratoryCollectionOperation[]; } export interface LaboratoryCollectionsActions { addCollection: (collection: Omit & { operations?: Omit[]; }) => LaboratoryCollection; addOperationToCollection: (collectionId: string, operation: Omit) => void; deleteCollection: (collectionId: string) => void; deleteOperationFromCollection: (collectionId: string, operationId: string) => void; updateCollection: (collectionId: string, collection: Omit) => void; updateOperationInCollection: (collectionId: string, operationId: string, operation: Omit) => void; } export interface LaboratoryCollectionsState { collections: LaboratoryCollection[]; } export interface LaboratoryCollectionsCallbacks { onCollectionCreate?: (collection: LaboratoryCollection) => void; onCollectionUpdate?: (collection: LaboratoryCollection) => void; onCollectionDelete?: (collection: LaboratoryCollection) => void; onCollectionOperationCreate?: (collection: LaboratoryCollection, operation: LaboratoryCollectionOperation) => void; onCollectionOperationUpdate?: (collection: LaboratoryCollection, operation: LaboratoryCollectionOperation) => void; onCollectionOperationDelete?: (collection: LaboratoryCollection, operation: LaboratoryCollectionOperation) => void; } export declare const useCollections: (props: { defaultCollections?: LaboratoryCollection[]; onCollectionsChange?: (collections: LaboratoryCollection[]) => void; tabsApi?: LaboratoryTabsState & LaboratoryTabsActions; } & LaboratoryCollectionsCallbacks) => LaboratoryCollectionsState & LaboratoryCollectionsActions;