import { ElementApiService } from 'dbweb-core';
import { Category } from './types/category';
import { IElementHis, ILabel, ILabelHisItem, ILabelHisKey, ILabelKey, OwnerByEnum, INode } from './types/model';
export interface ModelElementCategory {
    ID: string;
    EleName: string;
    OwnerBy: OwnerByEnum;
    Owner: string;
    Name: string;
    Position: number;
    Labels: ModelElementLabel[];
}
export interface ModelElementLabel {
    CategoryID: string;
    ID: string;
    Name: string;
    Position: number;
    LastWriteTime: Date;
    LastWriteUser: string;
    Conts: string;
    PlainText: string;
}
export interface AddCategoryParam {
    EleName: string;
    Name: string;
    OwnerBy: string;
    BeforeAtID?: string;
}
export interface SetCategoryPositionParam {
    ID: string;
    Position: number;
}
export interface SetCategoryPositionResult {
    ID: string;
    Position: number;
}
export interface UpdateCategoryParam {
    ID: string;
    Name: string;
    OwnerBy: string;
}
export interface AddLabelParam {
    CategoryID: string;
    Name: string;
    Conts: string;
    PlainText: string;
}
export interface SetLabelPositionParam {
    CategoryID: string;
    ID: string;
    Position: number;
}
export interface SetLabelPositionResult {
    ID: string;
    Position: number;
}
export interface UpdateLabelParam {
    CategoryID: string;
    ID: string;
    Name: string;
    Conts: string;
    PlainText: string;
}
export interface IFetchElementAllCategoriesResult {
    OwnerBy: string;
    Owner: string;
    DeptName: string;
}
export declare class FetchElementAllCategoriesResult implements IFetchElementAllCategoriesResult {
    OwnerBy: string;
    Owner: string;
    DeptName: string;
    static fromInterface(data: IFetchElementAllCategoriesResult): FetchElementAllCategoriesResult;
    categoryDisplayLabel(): string;
}
export interface FetchLabelResult {
    Name: string;
    Position: number;
    LastWriteTime: Date;
    LastWriteUser: string;
    Conts: string;
    PlainText: string;
}
export declare class EleViewBackFaceService {
    private api;
    readonly ele = "eleview";
    constructor(api: ElementApiService);
    addCategory(param: AddCategoryParam): import("rxjs").Observable<Category>;
    removeCategory(id: string): import("rxjs").Observable<boolean>;
    setCategoryPosition(param: SetCategoryPositionParam): import("rxjs").Observable<SetCategoryPositionResult[]>;
    updateCategory(param: UpdateCategoryParam): import("rxjs").Observable<boolean>;
    fetchCategories(param: {
        EleName: string;
        OwnerBy: OwnerByEnum;
        Owner: string;
    }): import("rxjs").Observable<Category[]>;
    fetchElementAllCategories(eleName: string): import("rxjs").Observable<FetchElementAllCategoriesResult[]>;
    fetchCategoryLabelHis(param: {
        EleName: string;
        OwnerBy: OwnerByEnum;
        Owner: string[];
    }): import("rxjs").Observable<IElementHis[]>;
    fetchLabelHisList(param: ILabelKey): import("rxjs").Observable<ILabelHisItem[]>;
    fetchLabelHis(param: ILabelHisKey): import("rxjs").Observable<{
        Conts: string;
        PlainText: string;
    }>;
    addLabel(param: AddLabelParam): import("rxjs").Observable<ILabel>;
    removeLabel(param: ILabelKey): import("rxjs").Observable<boolean>;
    nodeToString(param: INode): import("rxjs").Observable<string>;
    stringToNode(param: string): import("rxjs").Observable<any>;
    setLabelPosition(param: SetLabelPositionParam): import("rxjs").Observable<SetLabelPositionResult[]>;
    updateLabel(param: UpdateLabelParam): import("rxjs").Observable<ILabel>;
    fetchLabel(param: ILabelKey): import("rxjs").Observable<FetchLabelResult>;
    fetchFullCategories(param: {
        EleName: string;
        OwnerBy: OwnerByEnum;
        Owner: string;
    }): import("rxjs").Observable<ModelElementCategory[]>;
}
