import type { DescriptionJI, EntitySearch, Info, ItemSearch, SdJsonJI } from "../core/interfaces.js";
import type { IDataSdj, IDescriptionSdj, IJsonSdj } from "./class-interfaces.js";
import { SdjData } from "./data.js";
export declare class SdJson implements IJsonSdj {
    private _data;
    private _description;
    private _lang;
    private _sdInfo;
    private _isLocked;
    private _host;
    private readonly log;
    constructor(inJI: SdJsonJI | DescriptionJI);
    get data(): IDataSdj[];
    set data(inval: SdjData[]);
    get description(): IDescriptionSdj;
    set description(changeDesc: IDescriptionSdj);
    get sdInfo(): Info;
    get $sdInfo(): Info;
    set $sdInfo(inInfo: Info);
    get lang(): string;
    get $lang(): string;
    set $lang(inStr: string);
    get isLocked(): boolean;
    get isValid(): boolean;
    lock(setLock: boolean): IDescriptionSdj | undefined;
    dataByPath(dataPath: string): IDataSdj | undefined;
    dataByEntity(searchEnt: EntitySearch, dataPath?: string): IDataSdj[];
    dataByItem(searchItem: ItemSearch, dataPath?: string): IDataSdj[];
    genJI(): SdJsonJI;
    private build;
    private createSubData;
    private modifyInJson;
    private validate;
    private internalJI;
    static VerifyJI(inJson: SdJsonJI): void;
}
