import { APIResource } from "../../../../core/resource.js";
import * as PermissionsAPI from "./permissions.js";
import { BetaRBACAllConnectorsPermissionResource, BetaRBACConnectorPermissionResource, BetaRBACConnectorScopePermissionResource, BetaRBACConnectorToolPermissionResource, BetaRBACOrganizationPermissionResource, BetaRBACRolePermission, BetaRBACRolePermissionsPageCursor, PermissionListParams, Permissions } from "./permissions.js";
import { APIPromise } from "../../../../core/api-promise.js";
import { PageCursor, type PageCursorParams, PagePromise } from "../../../../core/pagination.js";
import { RequestOptions } from "../../../../internal/request-options.js";
export declare class RBACRoles extends APIResource {
    permissions: PermissionsAPI.Permissions;
    /**
     * Retrieve an RBAC Role by ID.
     *
     * The RBAC Roles API is available to Claude Enterprise organizations only.
     *
     * @example
     * ```ts
     * const betaRBACRole =
     *   await client.beta.organization.rbacRoles.retrieve(
     *     'rbac_role_id',
     *   );
     * ```
     */
    retrieve(rbacRoleID: string, options?: RequestOptions): APIPromise<BetaRBACRole>;
    /**
     * List RBAC Roles in the organization.
     *
     * The RBAC Roles API is available to Claude Enterprise organizations only.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const betaRBACRole of client.beta.organization.rbacRoles.list()) {
     *   // ...
     * }
     * ```
     */
    list(query?: RBACRoleListParams | null | undefined, options?: RequestOptions): PagePromise<BetaRBACRolesPageCursor, BetaRBACRole>;
}
export type BetaRBACRolesPageCursor = PageCursor<BetaRBACRole>;
export interface BetaRBACRole {
    /**
     * ID of the RBAC Role.
     */
    id: string;
    /**
     * RFC 3339 datetime string indicating when the RBAC Role was created.
     */
    created_at: string;
    /**
     * Name of the RBAC Role. For a role created by Anthropic, this name can differ
     * from the label claude.ai shows, and Anthropic may change the name. To keep a
     * lasting reference to a role, store its `id`.
     */
    display_name: string;
    /**
     * Object type.
     *
     * For RBAC Roles, this is always `"rbac_role"`.
     */
    type: 'rbac_role';
    /**
     * RFC 3339 datetime string indicating when the RBAC Role was last updated.
     */
    updated_at: string;
}
export interface RBACRoleListParams extends PageCursorParams {
}
export declare namespace RBACRoles {
    export { type BetaRBACRole as BetaRBACRole, type BetaRBACRolesPageCursor as BetaRBACRolesPageCursor, type RBACRoleListParams as RBACRoleListParams, };
    export { Permissions as Permissions, type BetaRBACAllConnectorsPermissionResource as BetaRBACAllConnectorsPermissionResource, type BetaRBACConnectorPermissionResource as BetaRBACConnectorPermissionResource, type BetaRBACConnectorScopePermissionResource as BetaRBACConnectorScopePermissionResource, type BetaRBACConnectorToolPermissionResource as BetaRBACConnectorToolPermissionResource, type BetaRBACOrganizationPermissionResource as BetaRBACOrganizationPermissionResource, type BetaRBACRolePermission as BetaRBACRolePermission, type BetaRBACRolePermissionsPageCursor as BetaRBACRolePermissionsPageCursor, type PermissionListParams as PermissionListParams, };
}
//# sourceMappingURL=rbac-roles.d.ts.map