interface IBaseEntityProperties {
    tableName: string;
    fa: string;
    en: string | null;
    ar: string | null;
    sp: string | null;
    fr: string | null;
    properties: IBasePropertyJson[];
}
interface IBasePropertyJson {
    dataType: IBasePropertyDataType;
    fieldName: string;
    fa: string;
    en: string | null;
    ar: string | null;
    sp: string | null;
    fr: string | null;
}
export declare class BaseEntityProperties {
    tableName: string;
    FA: string;
    EN?: string | undefined;
    AR?: string | undefined;
    SP?: string | undefined;
    FR?: string | undefined;
    properties: BaseProperty[];
    constructor(tableName: string, FA: string, EN?: string | undefined, AR?: string | undefined, SP?: string | undefined, FR?: string | undefined);
    private Add;
    static buildNew(jsons: IBaseEntityProperties[]): BaseEntityProperties[];
}
type IBasePropertyDataType = 'int' | 'string' | 'dateTime' | 'dateShamsi' | 'float';
export declare class BaseProperty {
    dataType: IBasePropertyDataType;
    fieldName: string;
    FA: string;
    EN: string | null;
    AR: string | null;
    SP: string | null;
    FR: string | null;
    constructor(dataType: IBasePropertyDataType, fieldName: string, FA: string, EN: string | null, AR: string | null, SP: string | null, FR: string | null);
    static buildNew(entityJson: IBasePropertyJson): BaseProperty;
}
export declare class BasePropertyFactory {
    getCurrentProperty(entity: BaseEntityProperties | undefined, fieldName: string): BaseProperty | undefined;
    getCurrentEntity(tableName: string): BaseEntityProperties | undefined;
    entities?: BaseEntityProperties[];
    setEntities: (entities: IBaseEntityProperties[]) => void;
    static buildNew(): BasePropertyFactory;
}
export {};
