/**
* Google Cloud Storage Integration for Veo3
*
* Advanced cloud storage with large file handling, CDN distribution,
* compression, encryption, and intelligent upload optimization
*/
///
///
import { Veo3StorageConfig, VideoFile } from "./types.js";
import { BaseIntegration, HealthStatus, FileMetadata } from "../shared/types.js";
export interface GcsConfig extends Veo3StorageConfig {
projectId: string;
keyFilename?: string;
credentials?: any;
multipart: MultipartConfig;
resumable: ResumableConfig;
lifecycle: LifecycleConfig;
}
export interface MultipartConfig {
enabled: boolean;
chunkSize: number;
maxParallel: number;
minFileSize: number;
}
export interface ResumableConfig {
enabled: boolean;
chunkSize: number;
retryDelayMs: number;
maxRetries: number;
}
export interface LifecycleConfig {
enabled: boolean;
archiveAfterDays: number;
deleteAfterDays: number;
transitionToIA: number;
transitionToColdline: number;
}
export interface UploadOptions {
resumable?: boolean;
multipart?: boolean;
encryption?: boolean;
compression?: boolean;
metadata?: Record;
acl?: "private" | "public-read" | "authenticated-read";
storageClass?: "STANDARD" | "NEARLINE" | "COLDLINE" | "ARCHIVE";
}
export interface DownloadOptions {
range?: {
start: number;
end: number;
};
decrypt?: boolean;
decompress?: boolean;
stream?: boolean;
timeout?: number;
}
export interface StorageMetrics {
totalUploads: number;
totalDownloads: number;
totalSize: number;
avgUploadTime: number;
avgDownloadTime: number;
compressionRatio: number;
cdnHitRate: number;
errorRate: number;
}
export interface BandwidthManager {
maxBandwidth: number;
currentUsage: number;
queuedOperations: number;
throttleEnabled: boolean;
}
export declare class GoogleCloudStorage extends BaseIntegration {
private config;
private storage;
private bucket;
private cdn;
private compressor;
private encryptor;
private bandwidth;
private activeUploads;
private activeDownloads;
private operationQueue;
private storageMetrics;
constructor(config: GcsConfig);
initialize(): Promise;
shutdown(): Promise;
healthCheck(): Promise;
getMetrics(): Record;
uploadFile(file: Buffer | string, destination: string, options?: UploadOptions): Promise;
uploadChunked(chunks: Buffer[], destination: string, options?: UploadOptions): Promise;
downloadFile(source: string, options?: DownloadOptions): Promise;
deleteFile(path: string): Promise;
listFiles(prefix?: string): Promise;
getFileUrl(path: string, expiration?: Date): Promise;
private configureBucketLifecycle;
private startBandwidthMonitoring;
private checkBandwidthAvailability;
private processOperationQueue;
private shouldUseResumable;
private shouldUseMultipart;
private uploadResumable;
private uploadMultipart;
private uploadSimple;
private uploadChunk;
private combineChunks;
private downloadStream;
private downloadRange;
private downloadSimple;
private executeWithConcurrency;
private detectFormat;
}
//# sourceMappingURL=google-cloud-storage.d.ts.map