import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { LocalStorageAdapter } from './local.adapter';
import { OneDriveStorageAdapter } from './onedrive.adapter';
import type { UploadResult } from './storage.types';
import type { StorageBinding } from '@prisma/client';
export declare class StorageService {
    private readonly prisma;
    private readonly local;
    private readonly onedrive;
    private readonly adapters;
    constructor(prisma: PrismaService, local: LocalStorageAdapter, onedrive: OneDriveStorageAdapter);
    resolveBinding(args: {
        organizationId: string;
        userId: string;
        projectId?: string;
    }): Promise<StorageBinding>;
    upload(args: {
        organizationId: string;
        userId: string;
        projectId?: string;
        path: string;
        content: Buffer;
        mimeType?: string;
    }): Promise<UploadResult>;
    download(args: {
        organizationId: string;
        fileId: string;
    }): Promise<Buffer>;
    listFiles(args: {
        organizationId: string;
        bindingId?: string;
    }): Promise<{
        path: string;
        id: string;
        createdAt: Date;
        sha256: string;
        externalId: string | null;
        organizationId: string;
        mimeType: string | null;
        uploadedById: string;
        bindingId: string;
        encrypted: boolean;
        sizeBytes: number;
    }[]>;
}
