import { MTableQueries } from "../../common-types/common";
import { CoreEntityMapping, CoreSystemEntity } from "../../schema";
import { controllerResponse } from "../../utilities";
type IEntityErrorLogger = {
    [key in keyof MEntity]: string;
};
type IEntityByDomainErrorLogger = {
    [key in keyof MEntityByDomain]: string;
};
type CoreSystemEntityErrorLogger = {
    [key in keyof CoreSystemEntity]: string;
};
declare class CoreSystemEntitySaveUpdatePayload {
    core_system_entity?: CoreSystemEntity;
    core_entity_mapping?: CoreEntityMapping[];
    constructor(init: CoreSystemEntitySaveUpdatePayload);
    Validate?(): Partial<CoreSystemEntityErrorLogger>;
}
declare class MEntity extends MTableQueries {
    syen_id?: string;
    /** When set (e.g. from entity list page), filter list to this entity and its children only. */
    syen_logged_in_entity_id?: string;
    constructor(init: MEntity);
    Validate?(): Partial<IEntityErrorLogger>;
}
declare class MEntityByDomain {
    domain?: string;
    constructor(init: MEntityByDomain);
    Validate?(): Partial<IEntityByDomainErrorLogger>;
}
interface entityControllerResponse extends controllerResponse {
    data?: CoreSystemEntityListResponse[];
}
interface entityInsertUpdateControllerResponse extends controllerResponse {
    data?: CoreSystemEntity;
}
interface entityByIdControllerResponse extends controllerResponse {
    data?: CoreSystemEntity;
}
interface entityByDomainControllerResponse extends controllerResponse {
    data?: {
        _id?: string;
        syen_id?: string;
    };
}
interface CoreSystemEntityListResponse extends CoreSystemEntity {
    children: CoreSystemEntityListResponse[];
}
export { IEntityErrorLogger, //interface
IEntityByDomainErrorLogger, //interface
MEntity, // model
MEntityByDomain, // model
entityControllerResponse, CoreSystemEntityListResponse, entityInsertUpdateControllerResponse, entityByIdControllerResponse, entityByDomainControllerResponse, CoreSystemEntitySaveUpdatePayload };
