import { MTableQueries } from "../../common-types/common";
import { CoreUserRole, CoreUserRoleBase, CoreUserRoleRights, CoreUserRoleRightsBase } from "../../schema";
import { controllerResponse } from "../../utilities";
type IUserRoleErrorLogger = {
    [key in keyof MUserRole]: string;
};
type IUserRoleGetByIdErrorLogger = {
    [key in keyof MUserRoleGetByIdPayload]: string;
};
type IUserRoleDeleteErrorLogger = {
    [key in keyof MUserRoleDeletePayload]: string;
};
type IUserRoleWithRightsErrorLogger = {
    [key in keyof MUserRoleWithRightsPayload]: string;
};
type IUserRoleToggleStatusErrorLogger = {
    [key in keyof MUserRoleToggleStatusPayload]: string;
};
declare class MUserRole extends MTableQueries {
    syusrol_role_entity_id_syen: string;
    constructor(init: MUserRole);
    Validate?(): Partial<IUserRoleErrorLogger>;
}
declare class MUserRoleGetByIdPayload {
    syusrol_id?: string;
    constructor(init: MUserRoleGetByIdPayload);
    Validate?(): Partial<IUserRoleGetByIdErrorLogger>;
}
declare class MUserRoleDeletePayload {
    syusrol_id?: string;
    constructor(init: MUserRoleDeletePayload);
    Validate?(): Partial<IUserRoleDeleteErrorLogger>;
}
declare class MUserRoleToggleStatusPayload {
    syusrol_id?: string;
    constructor(init: MUserRoleToggleStatusPayload);
    Validate?(): Partial<IUserRoleToggleStatusErrorLogger>;
}
declare class MUserRoleWithRightsPayload {
    core_user_role?: CoreUserRole;
    core_user_role_rights?: Array<CoreUserRoleRights>;
    core_user_role_rights_delete?: string[];
    constructor(init: MUserRoleWithRightsPayload);
    Validate?(): Partial<IUserRoleWithRightsErrorLogger>;
}
interface CoreUserRoleResponse extends CoreUserRoleBase {
    syusrol_role_entity_id_syen?: {
        _id?: string;
        syen_name?: string;
    };
}
interface CoreUserRoleRightsResponse extends CoreUserRoleRightsBase {
    syusrgt_role_permissions_id_sygms?: {
        _id?: string;
        sygms_title?: string;
    };
    syusrgt_menu_id_syme?: {
        _id?: string;
        syme_title?: string;
    };
}
interface userRoleControllerResponse extends controllerResponse {
    data?: Array<CoreUserRoleResponse>;
}
interface userRoleInsertUpdateControllerResponse extends controllerResponse {
    data?: CoreUserRole;
}
interface userRoleDeleteControllerResponse extends controllerResponse {
    data?: boolean;
}
interface userRoleToggleStatusControllerResponse extends controllerResponse {
    data?: boolean;
}
interface CoreUserRolePermissionData {
    core_user_role: CoreUserRoleResponse;
    core_user_role_rights: Array<CoreUserRoleRightsResponse>;
}
interface userRoleByIdControllerResponse extends controllerResponse {
    data?: CoreUserRolePermissionData;
}
interface userRoleWithRightsInsertUpdateControllerResponse extends controllerResponse {
    data?: {
        core_user_role: CoreUserRoleResponse;
        rightsInserted: number;
        rightsUpdated: number;
        rightsDeleted: number;
    };
}
export { IUserRoleErrorLogger, IUserRoleGetByIdErrorLogger, IUserRoleDeleteErrorLogger, IUserRoleWithRightsErrorLogger, IUserRoleToggleStatusErrorLogger, MUserRole, MUserRoleGetByIdPayload, MUserRoleDeletePayload, MUserRoleWithRightsPayload, MUserRoleToggleStatusPayload, userRoleControllerResponse, userRoleByIdControllerResponse, userRoleInsertUpdateControllerResponse, userRoleDeleteControllerResponse, userRoleToggleStatusControllerResponse, userRoleWithRightsInsertUpdateControllerResponse, CoreUserRoleResponse, CoreUserRolePermissionData, CoreUserRoleRightsResponse };
