import { NodesService } from './nodes.service.js';
export declare class NodesController {
    private readonly nodesService;
    constructor(nodesService: NodesService);
    createFolder(body: {
        name: string;
        parentId?: string;
    }, req: any): Promise<{
        id: string;
        parentId: string | null;
        name: string;
        type: string;
        sizeBytes: number;
        mimeType: string;
        createdAt: Date;
        updatedAt: Date;
        ownerId: string;
    }>;
    requestUpload(body: {
        name: string;
        sizeBytes: number;
        parentId?: string;
        mimeType: string;
    }, req: any): Promise<{
        node: {
            id: string;
            parentId: string | null;
            name: string;
            type: string;
            sizeBytes: number;
            mimeType: string;
            createdAt: Date;
            updatedAt: Date;
        };
        uploadUrl: string;
    }>;
    getDownloadUrl(id: string, req: any): Promise<{
        downloadUrl: string;
    }>;
    listNodes(parentId: string, tab: string, search: string, req: any): Promise<{
        id: string;
        parentId: null;
        name: string;
        type: string;
        sizeBytes: number;
        mimeType: string;
        createdAt: Date;
        updatedAt: Date;
        ownerId: string;
        isStarred: boolean;
    }[] | {
        id: string;
        parentId: string;
        name: any;
        type: string;
        sizeBytes: any;
        mimeType: string;
        createdAt: any;
        updatedAt: any;
        ownerId: string;
        isStarred: boolean;
    }[]>;
    renameNode(id: string, body: {
        name: string;
    }, req: any): Promise<{
        success: boolean;
    }>;
    deleteNode(id: string, req: any): Promise<{
        success: boolean;
    }>;
    restoreNode(id: string, req: any): Promise<import("@prisma/client").Prisma.BatchPayload>;
    shareNode(id: string, email: string, req: any): Promise<{
        id: string;
        role: import("@prisma/client").$Enums.PermissionRole;
        createdAt: Date;
        updatedAt: Date;
        granteeType: import("@prisma/client").$Enums.GranteeType;
        expiresAt: Date | null;
        nodeId: string;
        granteeId: string | null;
    }>;
    moveNode(id: string, parentId: string | null, req: any): Promise<{
        success: boolean;
    }>;
    getPermissions(id: string, req: any): Promise<({
        user: {
            email: string;
        } | null;
    } & {
        id: string;
        role: import("@prisma/client").$Enums.PermissionRole;
        createdAt: Date;
        updatedAt: Date;
        granteeType: import("@prisma/client").$Enums.GranteeType;
        expiresAt: Date | null;
        nodeId: string;
        granteeId: string | null;
    })[]>;
    updatePermission(id: string, permId: string, role: string, req: any): Promise<{
        id: string;
        role: import("@prisma/client").$Enums.PermissionRole;
        createdAt: Date;
        updatedAt: Date;
        granteeType: import("@prisma/client").$Enums.GranteeType;
        expiresAt: Date | null;
        nodeId: string;
        granteeId: string | null;
    }>;
    removePermission(id: string, permId: string, req: any): Promise<{
        id: string;
        role: import("@prisma/client").$Enums.PermissionRole;
        createdAt: Date;
        updatedAt: Date;
        granteeType: import("@prisma/client").$Enums.GranteeType;
        expiresAt: Date | null;
        nodeId: string;
        granteeId: string | null;
    }>;
    getStarredIds(req: any): Promise<any[]>;
    toggleStar(id: string, isStarred: boolean, req: any): Promise<{
        success: boolean;
    }>;
    updateFolderColor(id: string, color: string, req: any): Promise<import("@prisma/client").Prisma.BatchPayload>;
    getNotifications(req: any): Promise<unknown>;
    markNotificationsRead(req: any): Promise<{
        success: boolean;
    }>;
}
