import { CloudFunction, EventContext } from '../cloud-functions'; /** * The optional bucket function allows you to choose which buckets' events to handle. * This step can be bypassed by calling object() directly, which will use the default * Cloud Storage for Firebase bucket. * @param bucket Name of the Google Cloud Storage bucket to listen to. */ export declare function bucket(bucket?: string): BucketBuilder; /** * Handle events related to Cloud Storage objects. */ export declare function object(): ObjectBuilder; export declare class BucketBuilder { private triggerResource; private opts; /** Handle events for objects in this bucket. */ object(): ObjectBuilder; } export declare class ObjectBuilder { private triggerResource; private opts; /** Respond to archiving of an object, this is only for buckets that enabled object versioning. */ onArchive(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike | any): CloudFunction; /** Respond to the deletion of an object (not to archiving, if object versioning is enabled). */ onDelete(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike | any): CloudFunction; /** Respond to the successful creation of an object. */ onFinalize(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike | any): CloudFunction; /** Respond to metadata updates of existing objects. */ onMetadataUpdate(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike | any): CloudFunction; private onOperation(handler, eventType); } export interface ObjectMetadata { kind: string; id: string; bucket: string; storageClass: string; size: string; timeCreated: string; updated: string; selfLink?: string; name?: string; generation?: string; contentType?: string; metageneration?: string; timeDeleted?: string; timeStorageClassUpdated?: string; md5Hash?: string; mediaLink?: string; contentEncoding?: string; contentDisposition?: string; contentLanguage?: string; cacheControl?: string; metadata?: { [key: string]: string; }; acl?: [{ kind?: string; id?: string; selfLink?: string; bucket?: string; object?: string; generation?: string; entity?: string; role?: string; email?: string; entityId?: string; domain?: string; projectTeam?: { projectNumber?: string; team?: string; }; etag?: string; }]; owner?: { entity?: string; entityId?: string; }; crc32c?: string; componentCount?: string; etag?: string; customerEncryption?: { encryptionAlgorithm?: string; keySha256?: string; }; }