import type { CoreSD, DataJI, ExtAllowedValue } from "../core/interfaces.js";
import type { IDataSdj, IEntitySdj } from "./class-interfaces.js";
export declare class SdjData implements CoreSD, IDataSdj {
    $sdIndex: number;
    private _sdId;
    private _sdKey;
    private _depth;
    private _sdInfo?;
    private _parentRef;
    private _sdChildren;
    private _data;
    private _entity;
    constructor(inData: DataJI, entityRef: IEntitySdj, parentRef?: SdjData | undefined);
    get sdKey(): string;
    get sdId(): number;
    get data(): DataJI;
    get entity(): IEntitySdj;
    get path(): string;
    get depth(): number;
    set $depth(value: number);
    get $depth(): number;
    get parentRef(): IDataSdj | undefined;
    get $parentRef(): SdjData | undefined;
    set $parentRef(inParent: SdjData | undefined);
    get sdChildren(): IDataSdj[] | undefined;
    get $sdChildren(): SdjData[] | undefined;
    get hasChildren(): boolean;
    update(dataJI: DataJI): boolean;
    setDataKey(dataKey: string, value: ExtAllowedValue): void;
    getDataKey(dataKey: string): ExtAllowedValue;
    $addChild(sdData: SdjData): void;
    $removeChild(childRef: string | number): IDataSdj | undefined;
    $modifySdInfo(): void;
    getChild(optChildRef: string | number): IDataSdj | undefined;
    isValid(): boolean;
    genJI(withChildren?: boolean): DataJI;
    private confirmEntity;
    static VerifyJI(inData: DataJI): void;
}
