import { IWithCreatedShort } from './dto-with-modified'; export interface IRelatedItemKey { readonly itemID: string; readonly spaceID?: string; readonly subPath?: string; } export interface ISpaceModuleItemRef { readonly module: string; readonly collection: string; readonly spaceID?: string; readonly itemID: string; readonly subPath?: string; } export interface IRelationshipRole { readonly created: IWithCreatedShort; } export type WritableRelationshipRoles = Record; export type IRelationshipRoles = Readonly; export interface IRelatedItem { readonly rolesOfItem?: IRelationshipRoles; readonly rolesToItem?: IRelationshipRoles; readonly subPaths?: Readonly>; } export type IRelatedItems = Readonly>; export type IRelatedCollections = Readonly>; export type IRelatedModules = Readonly>; export interface IRelatedTo extends IWithRelatedOnly { readonly key: ISpaceModuleItemRef; readonly title: string; } export declare function getRelatedItems(moduleId: string, collectionId: string, related?: IRelatedModules): IRelatedItems; export interface IWithRelatedOnly { readonly related?: IRelatedModules; } export declare function validateRelated(related?: IRelatedModules): void; export interface IWithRelatedAndRelatedIDs extends IWithRelatedOnly { readonly relatedIDs?: readonly string[]; } export declare const addRelatedItem: (related: IRelatedModules | undefined, key: ISpaceModuleItemRef, rolesOfItem?: IRelationshipRoles) => Readonly>>>>>; export declare const removeRelatedItem: (related: IRelatedModules | undefined, key: ISpaceModuleItemRef) => Readonly>>>>> | undefined; export declare const getLongRelatedItemID: (itemID: string, spaceID?: string) => string; export declare const getRelatedItemByIDs: (relatedItems: Readonly> | undefined, itemID: string, spaceID?: string) => IRelatedItem | undefined; export declare const getRelatedItemByKey: (related: IRelatedModules | undefined, key: ISpaceModuleItemRef) => IRelatedItem | undefined; export declare const getRelatedItemIDs: (related: IRelatedModules | undefined, module: string, collection: string, spaceID?: string) => readonly string[]; export declare const hasRelated: (related: IRelatedModules | undefined, key: ISpaceModuleItemRef) => boolean;