import * as mongoDB from "mongodb";
import { AvatarItem } from "./AvatarItem";
import { MongoObject } from "./MongoObject";
import { DataValueType } from "./type/DataValueType";
export declare class DataObjectBase extends MongoObject {
    private static readonly _segments;
    private static readonly _customDatas;
    private static readonly _tsCreate;
    private static readonly _displayName;
    private static readonly _displayNameNormalize;
    private static readonly _avatar;
    private static readonly _tags;
    static readonly DOT: string;
    private segments;
    private customDatas;
    private displayName;
    private avatar;
    private tsCreate;
    private tags;
    constructor(result: mongoDB.WithId<mongoDB.Document>, collection: mongoDB.Collection<mongoDB.Document>);
    private setDocumentDataObjectBase;
    getAllSegments(): Array<string>;
    hasSegment(segment: string): boolean;
    addSegment(segment: string): void;
    removeSegment(segment: string): void;
    removeAllSegments(): void;
    getAllCustomDatas(): Map<string, DataValueType>;
    hasCustomData(key: string): boolean;
    getCustomData(key: string): DataValueType;
    setCustomData(key: string, value: DataValueType): void;
    removeCustomData(key: string): void;
    getDisplayName(): string;
    setDisplayName(displayName: string): void;
    getAvatar(): AvatarItem;
    setAvatar(type: number, value: string): void;
    getTsCreate(): number;
    setTsCreate(tsCreate: number): void;
    getAllTags(): Map<string, string>;
    clearTags(): void;
    hasTag(key: string): boolean;
    getTag(key: string): string;
    setTag(key: string, value: string): void;
    removeTag(key: string): void;
}
