import { IGXE } from "@intelligentgraphics/igd.core";
import { ArticleCategories, ArticleData, ArticleTypes, ArticleInfo, SourcePlacement } from "./Article";
import { IPlacement } from "./GfxRepresentation";
import { ArticleNumber } from "./ArticleNumber";
import { UpdateArticleData } from "./ArticleRegistry";
export declare type OperationType = "change" | "create" | "delete";
export interface OperationResult<Type extends OperationType> {
    type: Type;
    comId: string;
}
export interface ChangeOperationResult extends OperationResult<"change">, UpdateArticleData {
}
export interface CreateOperationResult extends OperationResult<"create"> {
    source: string;
    categories: ArticleCategories;
    articleNumber: ArticleNumber;
    placement: Required<IPlacement> | undefined;
    data?: ArticleData;
    parent: string | undefined;
    children: string[];
    articleType: ArticleTypes;
    info: ArticleInfo;
    sourceData: object;
    configuration: IGXE.IArticleConfiguration;
    properties: IGXE.IProperty[];
    articleId: string;
    sourcePlacement: SourcePlacement | undefined;
    gfxId: string | undefined;
}
export interface DeleteOperationResult extends OperationResult<"delete"> {
}
export declare type TOperationResult = CreateOperationResult | ChangeOperationResult | DeleteOperationResult;
