/** * Google Cloud Storage controller (works with GCS and Firebase Storage) * * The `@google-cloud/storage` package is loaded lazily so it remains an * optional peer dependency — users who don't need GCS never pay for the * import cost or need it installed. */ import { StorageController, GCSStorageConfig } from "./types"; import { UploadFileProps, UploadFileResult, DownloadConfig, StorageListResult } from "@rebasepro/types"; /** * Google Cloud Storage implementation of `StorageController`. * * Works with standard GCS buckets **and** Firebase Storage buckets * (e.g. `"my-project.appspot.com"`). */ export declare class GCSStorageController implements StorageController { private config; private client; constructor(config: GCSStorageConfig); private getClient; getType(): "gcs"; putObject({ file, key, metadata, bucket }: UploadFileProps): Promise; getSignedUrl(key: string, bucket?: string): Promise; getObject(key: string, bucket?: string): Promise; deleteObject(key: string, bucket?: string): Promise; listObjects(prefix: string, options?: { bucket?: string; maxResults?: number; pageToken?: string; }): Promise; /** * Validate file before upload */ private validateFile; /** * Get the bucket name — either from parameter or config. */ private getBucket; /** * Flatten nested metadata to string values (GCS custom metadata requirement) */ private flattenMetadata; }