import * as Library from '@fjell/lib'; import { Coordinate, Item, ItemTypeArray } from "@fjell/types"; import { Registry } from '@fjell/lib'; import { Storage } from '@google-cloud/storage'; import { Options } from './Options'; import { FileOperations } from './FileOperations'; /** * The GCSLibrary interface extends the Library from @fjell/lib * and adds GCS-specific properties and operations. */ export interface GCSLibrary, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> extends Library.Library { /** GCS Storage instance for cloud storage operations */ storage: Storage; /** The bucket name where items are stored */ bucketName: string; /** File attachment operations */ files: FileOperations; } /** * Creates a new GCSLibrary with pre-created components */ export declare function createGCSLibraryFromComponents, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(registry: Registry, coordinate: Coordinate, storage: Storage, bucketName: string, operations: Library.Operations, options: Options, fileOperations: FileOperations): GCSLibrary; /** * Creates a new GCSLibrary with the provided raw parameters */ export declare function createGCSLibrary, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(kta: ItemTypeArray, directoryPaths: string[], bucketName: string, storage?: Storage | null, libOptions?: Partial> & Partial> | null, scopes?: string[] | null, registry?: Registry): GCSLibrary; /** * Type guard to check if an object is a GCSLibrary */ export declare function isGCSLibrary(library: any): library is GCSLibrary;