import { AttributeDelete, AttributeInsert, ChangeRequest, DCRChange, DCRChanges, DCRObjectInfo, DCRObjectsInfo, EndDateUpdate, Entity, GroupedObjectsInfo, Metadata, RolesUpdate, StartDateUpdate, TagsUpdate } from '@reltio/mdm-sdk';
import { LineData } from '../types';
type CumulativeUpdateDiffEntry = AttributeInsert | EndDateUpdate | StartDateUpdate | TagsUpdate | RolesUpdate;
export declare const getEntitiesObjects: any;
export declare const getRelationsObjects: any;
export declare const extractObjectsFromChangeRequest: (changes: DCRChanges, objectsInfo: DCRObjectsInfo) => DCRObjectInfo[];
export declare const createEntityRelationsObjectByEntity: any;
export declare const createEntityRelationsObjectByRelation: any;
export declare const concatEntityRelationsObjects: (acc: Record<string, GroupedObjectsInfo>, object: GroupedObjectsInfo) => Record<string, GroupedObjectsInfo>;
export declare const getEntityUriForChangeRequest: (dcrUri: string, entityUri: string) => string;
export declare const isCreateEntityOperation: (dcr: ChangeRequest) => boolean;
export declare const buildDCRSavePlan: (changes: DCRChanges, getLinesByChangeId: (changeId: string) => Array<[string, LineData]>, metadata: Metadata) => {
    rejectedChangeIds: string[];
    updatedChanges: Record<string, DCRChange[]>;
    deleteEntityAttributes: Record<string, AttributeDelete[]>;
    deleteRelationAttributes: Record<string, AttributeDelete[]>;
    insertEntityAttributes: Record<string, CumulativeUpdateDiffEntry[]>;
    insertRelationAttributes: Record<string, CumulativeUpdateDiffEntry[]>;
};
export declare const mergeExistingRolesAndTags: (diff: CumulativeUpdateDiffEntry[], entity: Entity) => CumulativeUpdateDiffEntry[];
export {};
