import { AIToolsService } from './ai-tools.service';
import { BatchCreateRoleGrantsDto, CreateRoleGrantDto, CreateUserGrantDto, RoleGrantQueryDto, UserGrantQueryDto } from './dto';
export declare class AIToolsController {
    private readonly aiToolsService;
    constructor(aiToolsService: AIToolsService);
    listRoleGrants(query: RoleGrantQueryDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        roleId: string;
        createdBy: string | null;
        toolName: string;
    }[]>;
    createRoleGrant(dto: CreateRoleGrantDto, req: any): Promise<{
        role: {
            code: string;
            id: string;
            name: string;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        roleId: string;
        createdBy: string | null;
        toolName: string;
    }>;
    batchCreateRoleGrants(dto: BatchCreateRoleGrantsDto, req: any): Promise<{
        roleId: string;
        results: {
            toolName: string;
            status: "created" | "skipped";
        }[];
        createdCount: number;
        skippedCount: number;
    }>;
    deleteRoleGrant(id: string): Promise<{
        success: boolean;
    }>;
    listUserGrants(query: UserGrantQueryDto): Promise<({
        user: {
            displayName: string;
            id: string;
            username: string;
            email: string;
        };
    } & {
        id: string;
        createdAt: Date;
        userId: string;
        updatedAt: Date;
        reason: string | null;
        createdBy: string | null;
        toolName: string;
        effect: string;
    })[]>;
    createUserGrant(dto: CreateUserGrantDto, req: any): Promise<{
        user: {
            displayName: string;
            id: string;
            username: string;
            email: string;
        };
    } & {
        id: string;
        createdAt: Date;
        userId: string;
        updatedAt: Date;
        reason: string | null;
        createdBy: string | null;
        toolName: string;
        effect: string;
    }>;
    deleteUserGrant(id: string): Promise<{
        success: boolean;
    }>;
    getAvailableTools(): import("./available-tools.config").AvailableTool[];
    getUserEffectiveTools(userId: string): Promise<import("./ai-tools.service").EffectiveTool[]>;
    getToolSubjects(toolName: string): Promise<import("./ai-tools.service").ToolSubject[]>;
    triggerSync(): {
        scheduled: true;
        message: string;
        intervalMinutes: number;
    };
    listRoleGrantsAggregated(search?: string): Promise<{
        roleId: string;
        roleName: string;
        roleCode: string;
        tools: string[];
        toolCount: number;
        updatedAt: Date;
    }[]>;
    setRoleGrants(roleId: string, body: {
        tools: string[];
    }, req: any): Promise<{
        roleId: string;
        tools: string[];
        added: string[];
        removed: string[];
        toolCount: number;
    }>;
    setUserGrants(userId: string, body: {
        added: string[];
        removed: string[];
        reason: string;
    }, req: any): Promise<{
        userId: string;
        added: string[];
        removed: string[];
        reason: string;
    }>;
    getUserGrantsOverview(orgId?: string, deptId?: string, roleId?: string, search?: string, hasExtra?: string, hasRevoked?: string, page?: string, pageSize?: string): Promise<{
        items: {
            userId: string;
            displayName: string;
            email: string;
            avatar: string | null;
            roles: {
                id: string;
                name: string;
                code: string;
            }[];
            inheritedToolCount: number;
            addedCount: number;
            removedCount: number;
            effectiveToolCount: number;
        }[];
        total: number;
        page: number;
        pageSize: number;
    }>;
    getUserEffectiveToolsV2(userId: string): Promise<{
        data: {
            toolName: string;
            category: string;
            locked: boolean;
            sources: import("./ai-tools.service").EffectiveToolSource[] | {
                type: "locked";
                label: string;
            }[];
        }[];
        meta: {
            totalTools: number;
            lockedCount: number;
            inheritedCount: number;
            userAddedCount: number;
            userRemovedCount: number;
            userRemovedTools: string[];
        };
    }>;
}
