import { Item } from "@fjell/types"; import { Storage } from '@google-cloud/storage'; import { Registry } from '@fjell/lib'; import * as Library from '@fjell/lib'; import { GCSLibrary } from './GCSLibrary'; /** * Configuration for GCS Library Factory */ export interface GCSLibraryFactoryConfig { bucketName: string; storage?: Storage; basePath?: string; registry?: Registry; useJsonExtension?: boolean; mode?: 'full' | 'files-only'; keySharding?: { enabled?: boolean; levels?: number; charsPerLevel?: number; }; querySafety?: { maxScanFiles?: number; warnThreshold?: number; disableQueryOperations?: boolean; downloadConcurrency?: number; }; } /** * Factory for creating GCS libraries for primary items */ export declare function createPrimaryGCSLibrary, S extends string>(keyType: S, directoryPath: string, config: GCSLibraryFactoryConfig, libOptions?: Partial>): GCSLibrary; /** * Factory for creating GCS libraries for contained items (1 level) */ export declare function createContainedGCSLibrary, S extends string, L1 extends string>(keyType: S, parentKeyType: L1, directoryPaths: [string, string], config: GCSLibraryFactoryConfig, libOptions?: Partial>): GCSLibrary; /** * Factory for creating GCS libraries for contained items (2 levels) */ export declare function createContainedGCSLibrary2, S extends string, L1 extends string, L2 extends string>(keyType: S, parentKeyTypes: [L1, L2], directoryPaths: [string, string, string], config: GCSLibraryFactoryConfig, libOptions?: Partial>): GCSLibrary;