import { IUser } from '../users/users.interface';
import { UsersService } from '../users/services/users.service';
import { HttpService } from '@nestjs/axios';
export interface IImageData {
    id: string;
    name: string;
    mimeType: string;
    size: number;
    url: string;
}
export declare class StorageService {
    private readonly usersService;
    private readonly http;
    private readonly logger;
    storage: any;
    constructor(usersService: UsersService, http: HttpService);
    uploadGoogleCloudStorage(file: any, metaData: metaData, isPublic?: boolean, isUserUploaded?: boolean, bucketName?: string): Promise<IImageData>;
    uploadGoogleCloudStorageFromDirectUrl(url: string, metaData: metaData, isPublic?: boolean, bucketName?: string): Promise<IImageData>;
    makeFilePublic(fileId: string): Promise<{
        id: string;
        url: string;
    }>;
    uploadFileAsUrl(url: string, metaData: metaData): Promise<any>;
    downloadFileFromGoogleCloudStorage(fileId: string): Promise<Buffer>;
    downloadFileFromGoogleCloudToLocalServer(fileId: string): Promise<any>;
    deleteFile(fileId: string, user: Partial<IUser> | null, bucketName?: string, isAdmin?: boolean): Promise<void>;
    deleteFilesById(metaData: metaData, user: Partial<IUser>): Promise<void>;
    uploadFromGoogleDrive(fileId: string, fileName: string, mimeType: string, user: Partial<IUser>): Promise<IImageData>;
}
interface metaData {
    userId?: string;
    userEmail?: string;
    conversationId?: string;
    messageId?: string;
}
export {};
