import { Result } from "@webiny/feature/api"; import type { Role, CreateRoleInput } from "../shared/types.js"; import { RolesRepository } from "../shared/abstractions.js"; import { NotAuthorizedError, RoleExistsError, RoleValidationError } from "../shared/errors.js"; export interface ICreateRoleErrors { notAuthorized: NotAuthorizedError; roleExists: RoleExistsError; validation: RoleValidationError; } type CreateRoleError = ICreateRoleErrors[keyof ICreateRoleErrors] | RolesRepository.Error; export interface ICreateRole { execute(input: CreateRoleInput): Promise>; } /** Create a new security role. */ export declare const CreateRoleUseCase: import("@webiny/di").Abstraction; export declare namespace CreateRoleUseCase { type Interface = ICreateRole; type Error = CreateRoleError; } export interface RoleBeforeCreatePayload { role: Role; input: CreateRoleInput; } export interface RoleAfterCreatePayload { role: Role; input: CreateRoleInput; } export {};