import { DataScopeType, Prisma } from '@prisma/client';
import { DataScopeAdminService } from './data-scope-admin.service';
declare class CreateDataScopeDto {
    code: string;
    name: string;
    scopeType: DataScopeType;
    rules?: Record<string, unknown>;
}
declare class UpdateDataScopeDto {
    name?: string;
    scopeType?: DataScopeType;
    rules?: Record<string, unknown> | null;
}
export declare class DataScopesController {
    private readonly service;
    constructor(service: DataScopeAdminService);
    list(): Prisma.PrismaPromise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        isBuiltIn: boolean;
        rules: Prisma.JsonValue | null;
        scopeType: import("@prisma/client").$Enums.DataScopeType;
    }[]>;
    listByRole(roleId: string): Promise<({
        dataScope: {
            code: string;
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            isBuiltIn: boolean;
            rules: Prisma.JsonValue | null;
            scopeType: import("@prisma/client").$Enums.DataScopeType;
        };
    } & {
        id: string;
        createdAt: Date;
        resource: string;
        roleId: string;
        dataScopeId: string;
    })[]>;
    create(body: CreateDataScopeDto, actor: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        isBuiltIn: boolean;
        rules: Prisma.JsonValue | null;
        scopeType: import("@prisma/client").$Enums.DataScopeType;
    }>;
    update(id: string, body: UpdateDataScopeDto, actor: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        isBuiltIn: boolean;
        rules: Prisma.JsonValue | null;
        scopeType: import("@prisma/client").$Enums.DataScopeType;
    }>;
    remove(id: string, actor: string): Promise<{
        ok: boolean;
    }>;
}
export {};
