import { type FirebaseStorageAccessorFolder, type StorageListFilesOptions, type StorageListFilesResult } from './accessor'; import { type FetchPageFactory, type IterateFetchPagesByEachItemConfig, type IterateFetchPagesConfigWithFactoryAndInput } from '@dereekb/util/fetch'; /** * Configuration for {@link iterateStorageListFilesFactory}. Excludes `pageToken` since it is managed internally during iteration. */ export type IterateStorageListFilesFactoryConfig = Omit; /** * Input for a single page fetch during storage file iteration. */ export interface IterateStorageListFilesInput extends StorageListFilesOptions { /** * The folder to iterate files within. */ readonly folder: FirebaseStorageAccessorFolder; } /** * A {@link FetchPageFactory} specialized for paginating through files in a storage folder. * * Produced by {@link iterateStorageListFilesFactory}. */ export type IterateStorageListFilesFactory = FetchPageFactory; /** * Creates an {@link IterateStorageListFilesFactory} for paginated iteration over files in a storage folder. * * Wraps the folder's `list()` API with cursor-based pagination via {@link fetchPageFactory}. * * @param config - default listing options (e.g., maxResults) * @returns an {@link IterateStorageListFilesFactory} for paginated file listing * * @example * ```ts * const factory = iterateStorageListFilesFactory({ maxResults: 100 }); * ``` */ export declare function iterateStorageListFilesFactory(config: IterateStorageListFilesFactoryConfig): IterateStorageListFilesFactory; /** * Configuration for {@link iterateStorageListFilesByEachFile}, extending the per-item iteration config * with folder and listing options. */ export type IterateStorageListFilesByEachFileConfig = Omit, 'fetchPageFactory'> & Pick; /** * Iterates through every file in a storage folder, invoking a callback for each individual file result. * * Convenience wrapper around {@link iterateFetchPagesByEachItem} pre-configured for storage listing. * * @param input - iteration configuration including folder, listing options, and per-item callback * @returns the result of the paginated per-item iteration */ export declare function iterateStorageListFilesByEachFile(input: IterateStorageListFilesByEachFileConfig): Promise<{ totalItemsLoaded: number; totalItemsVisited: number; totalPages: number; totalPagesLimitReached: boolean; }>; /** * Configuration for {@link iterateStorageListFiles}, extending the page-level iteration config * with folder and listing options. */ export type IterateStorageListFilesConfig = Omit, 'fetchPageFactory'> & Pick; /** * Iterates through pages of file results in a storage folder, invoking a callback for each page. * * Convenience wrapper around {@link iterateFetchPages} pre-configured for storage listing. * * @param input - iteration configuration including folder, listing options, and per-page callback * @returns the result of the paginated page-level iteration */ export declare function iterateStorageListFiles(input: IterateStorageListFilesConfig): Promise;