import { CreatePermissionDto } from '../dto/create-permission.dto';
import { PaginatedPermissionResponseDto, PermissionResponseDto } from '../dto/permission-response.dto';
import { UpdatePermissionDto } from '../dto/update-permission.dto';
import { CreateSubPermissionDto } from '../dto/create-sub-permisison.dto';
import { SubPermissionEntity } from '../entities/sub-permission.entity';
import { UpdateSubPermissionDto } from '../dto/update-sub-permission.dto';
export declare abstract class BasePermissionService {
    abstract createPermission(createPermissionDto: CreatePermissionDto): Promise<PermissionResponseDto>;
    abstract updatePermission(permissionId: string, updatePermissionDto: UpdatePermissionDto): Promise<PermissionResponseDto>;
    abstract deletePermission(permissionId: string): Promise<void>;
    abstract findAllClientPermissions(): Promise<PermissionResponseDto[]>;
    abstract findPermissionById(permissionId: string): Promise<PermissionResponseDto>;
    abstract findPermissionByName(permissionName: string): Promise<PermissionResponseDto>;
    abstract removePermissionsFromRole(roleId: string, permissionIds: string[]): Promise<void>;
    abstract getPermissionsByRoleId(roleId: string, page: number, limit: number): Promise<PaginatedPermissionResponseDto>;
    abstract getPermissionsByRoleName(roleName: string, page: number, limit: number): Promise<PaginatedPermissionResponseDto>;
    abstract createSubPermission(createSubPermissionDto: CreateSubPermissionDto): Promise<PermissionResponseDto>;
    abstract updateSubPermission(subPermissionId: string, updateSubPermissionDto: UpdateSubPermissionDto): Promise<PermissionResponseDto>;
    abstract deleteSubPermission(subPermissionId: string): Promise<void>;
    abstract findSubPermissionById(subPermissionId: string): Promise<PermissionResponseDto>;
    abstract findSubPermissionByIds(subPermissionIds: string[]): Promise<SubPermissionEntity[]>;
    abstract findSubPermissionByName(subPermissionName: string): Promise<PermissionResponseDto>;
    abstract findAllSubPermissions(): Promise<SubPermissionEntity[]>;
    abstract removeSubPermissionsFromRole(roleId: string, subPermissionIds: string[]): Promise<void>;
    abstract getSubPermissionsByPermissionId(permissionId: string): Promise<SubPermissionEntity[]>;
}
