import BaseResource from '../../BaseResource';
import type * as SchemaTypes from '../SchemaTypes';
import type * as SimpleSchemaTypes from '../SimpleSchemaTypes';
export default class Role extends BaseResource {
    static readonly TYPE: "role";
    /**
     * Create a new role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    create(body: SimpleSchemaTypes.RoleCreateSchema): Promise<SimpleSchemaTypes.Role>;
    /**
     * Create a new role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/create
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawCreate(body: SchemaTypes.RoleCreateSchema): Promise<SchemaTypes.RoleCreateTargetSchema>;
    /**
     * Update a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    update(roleId: string | SimpleSchemaTypes.RoleData, body: SimpleSchemaTypes.RoleUpdateSchema): Promise<SimpleSchemaTypes.Role>;
    /**
     * Update a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/update
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawUpdate(roleId: string, body: SchemaTypes.RoleUpdateSchema): Promise<SchemaTypes.RoleUpdateTargetSchema>;
    /**
     * List all roles
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    list(): Promise<SimpleSchemaTypes.RoleInstancesTargetSchema>;
    /**
     * List all roles
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/instances
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawList(): Promise<SchemaTypes.RoleInstancesTargetSchema>;
    /**
     * Retrieve a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    find(roleId: string | SimpleSchemaTypes.RoleData): Promise<SimpleSchemaTypes.Role>;
    /**
     * Retrieve a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/self
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawFind(roleId: string): Promise<SchemaTypes.RoleSelfTargetSchema>;
    /**
     * Delete a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    destroy(roleId: string | SimpleSchemaTypes.RoleData): Promise<SimpleSchemaTypes.Role>;
    /**
     * Delete a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/destroy
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDestroy(roleId: string): Promise<SchemaTypes.RoleDestroyTargetSchema>;
    /**
     * Duplicate a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/duplicate
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    duplicate(roleId: string | SimpleSchemaTypes.RoleData): Promise<SimpleSchemaTypes.Role>;
    /**
     * Duplicate a role
     *
     * Read more: https://www.datocms.com/docs/content-management-api/resources/role/duplicate
     *
     * @throws {ApiError}
     * @throws {TimeoutError}
     */
    rawDuplicate(roleId: string): Promise<SchemaTypes.RoleDuplicateTargetSchema>;
}
