import type * as ApiTypes from '../generated/ApiTypes.js';
import BaseRole from '../generated/resources/Role.js';
type DistributiveOmit<T, K extends PropertyKey> = T extends any ? Omit<T, K> : never;
export type UpdateRoleDiff<T> = {
    add?: DistributiveOmit<T, 'environment'>[];
    remove?: DistributiveOmit<T, 'environment'>[];
};
export type RoleItemTypePermission = ApiTypes.RoleAttributes['positive_item_type_permissions'][0];
export type RoleUploadPermission = ApiTypes.RoleAttributes['positive_upload_permissions'][0];
type UpdateCurrentEnvironmentPermissionsChanges = {
    positive_item_type_permissions?: UpdateRoleDiff<RoleItemTypePermission>;
    negative_item_type_permissions?: UpdateRoleDiff<RoleItemTypePermission>;
    positive_upload_permissions?: UpdateRoleDiff<RoleUploadPermission>;
    negative_upload_permissions?: UpdateRoleDiff<RoleUploadPermission>;
};
export default class RoleResource extends BaseRole {
    /**
     * Applies a set of changes to the permissions of the current environment
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/update
     */
    updateCurrentEnvironmentPermissions(roleId: string | ApiTypes.RoleData, changes: UpdateCurrentEnvironmentPermissionsChanges): Promise<ApiTypes.Role>;
}
export {};
