import { MembershipRole } from '../../../prisma/enums';
import type { PermissionString } from "../types/permission-registry";
export declare class RoleService {
    private repository;
    private permissionService;
    constructor();
    createRole(data: {
        name: string;
        description?: string;
        teamId?: number;
        permissions: PermissionString[];
    }): Promise<{
        permissions: import('../../../prisma-client/runtime/library').GetBatchResult;
        name: string;
        id: string;
        type: import('../../../prisma-client').$Enums.RoleType;
        description: string | null;
        teamId: number | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    getDefaultRoleId(role: MembershipRole): Promise<string>;
    assignRoleToMember(roleId: string, membershipId: number): Promise<{
        id: number;
        role: import("@calcom/kysely/types").MembershipRole;
        userId: number;
        teamId: number;
        createdAt: Date | null;
        updatedAt: Date | null;
        disableImpersonation: boolean;
        accepted: boolean;
        customRoleId: string | null;
    }>;
    getRolePermissions(roleId: string): Promise<{
        id: string;
        action: string;
        resource: string;
    }[]>;
    removeRoleFromMember(membershipId: number): Promise<{
        id: number;
        role: import("@calcom/kysely/types").MembershipRole;
        userId: number;
        teamId: number;
        createdAt: Date | null;
        updatedAt: Date | null;
        disableImpersonation: boolean;
        accepted: boolean;
        customRoleId: string | null;
    }>;
    changeUserRole(membershipId: number, roleId: string): Promise<{
        id: number;
        role: import("@calcom/kysely/types").MembershipRole;
        userId: number;
        teamId: number;
        createdAt: Date | null;
        updatedAt: Date | null;
        disableImpersonation: boolean;
        accepted: boolean;
        customRoleId: string | null;
    }>;
    deleteRole(roleId: string): Promise<{
        name: string;
        id: string;
        type: "CUSTOM" | "SYSTEM";
        description: string | null;
        teamId: number | null;
        createdAt: Date;
        updatedAt: Date;
    } | undefined>;
    getRole(roleId: string): Promise<{
        id: string;
        name: string;
        type: "CUSTOM" | "SYSTEM";
        description: string | null;
        teamId: number | null;
        createdAt: Date;
        updatedAt: Date;
        permissions: {
            id: string;
            action: string;
            resource: string;
        }[];
    } | undefined>;
    getTeamRoles(teamId: number): Promise<{
        id: string;
        name: string;
        type: "CUSTOM" | "SYSTEM";
        description: string | null;
        teamId: number | null;
        createdAt: Date;
        updatedAt: Date;
        permissions: {
            id: string;
            action: string;
            resource: string;
        }[];
    }[]>;
    updateRolePermissions(roleId: string, permissions: PermissionString[]): Promise<{
        permissions: import('../../../prisma-client/runtime/library').GetBatchResult;
        id: string;
        name: string;
        type: "CUSTOM" | "SYSTEM";
        description: string | null;
        teamId: number | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
}
//# sourceMappingURL=role.service.d.ts.map