import { CloudinaryAssetMgmtCore } from "../core.js";
import { RequestOptions } from "../lib/sdks.js";
import { AssignFolderRolesRequest } from "../models/assignfolderrolesrequest.js";
import { APIError } from "../models/errors/apierror.js";
import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
import { APIPromise } from "../types/async.js";
import { Result } from "../types/fp.js";
/**
 * Assign folder roles
 *
 * @remarks
 * Assigns or removes folder roles for a principal (user, group, or API key).
 * Supports all system folder roles (see [System roles reference](https://cloudinary.com/documentation/permissions_system_roles_policies#folder_roles)).
 * Enterprise customers can also assign custom roles by ID.
 * Note: Assigning roles to users or groups via this endpoint requires their user or group IDs, which are available through the Provisioning API (Enterprise only). Free customers can use this endpoint to assign roles only to API keys, but can assign folder roles to users and groups through the UI.
 */
export declare function foldersAssignFolderRoles(client$: CloudinaryAssetMgmtCore, folder_id: string, assign_folder_roles_request: AssignFolderRolesRequest, options?: RequestOptions): APIPromise<Result<Response, APIError | SDKValidationError | UnexpectedClientError | InvalidRequestError | RequestAbortedError | RequestTimeoutError | ConnectionError>>;
//# sourceMappingURL=foldersAssignFolderRoles.d.ts.map