import { StorageService } from '../storage_service.js';
/**
 * Local filesystem-based implementation of the StorageService.
 * Saves files in a configured folder using a timestamp as filename.
 */
export declare class LocalStorageService extends StorageService {
    private baseDir;
    constructor(baseDir?: string);
    /**
     * Saves the given buffer to disk under a unique filename.
     * @param buffer - Content to save
     * @param collectorName - Name of the collector (used for folder)
     * @param extension - Optional file extension (e.g. 'json', 'txt')
     * @returns Relative path to the saved file
     */
    save(buffer: Buffer, collectorName: string, extension?: string): Promise<string>;
    /**
     * Retrieves a file as buffer using its relative path.
     * @param relativePath - Filename previously returned by `save`
     * @returns File content as Buffer
     */
    retrieve(relativePath: string): Promise<Buffer>;
    /**
     * Deletes a stored file.
     * @param relativePath - Filename previously returned by `save`
     */
    delete(relativePath: string): Promise<void>;
    /**
     * Saves the given buffer to disk at a specific path (preserves filename).
     * Unlike save(), this method does not auto-generate a timestamp filename.
     * @param buffer - Content to save
     * @param relativePath - Full relative path including filename (e.g., 'tilesets/123/tileset.json')
     * @returns The same relative path that was provided
     */
    saveWithPath(buffer: Buffer, relativePath: string): Promise<string>;
    /**
     * Returns a local file path for the stored file.
     * Note: For local storage, this returns a relative file path, not an HTTP URL.
     * In production, use a cloud storage service (OVH, S3) for public URLs.
     * @param relativePath - The storage path of the file
     * @returns The file path (relative to baseDir)
     */
    getPublicUrl(relativePath: string): string;
    /**
     * Deletes all files under a given prefix (folder).
     * @param prefix - The folder/prefix to delete (e.g., 'tilesets/123')
     * @returns Number of files deleted
     */
    deleteByPrefix(prefix: string): Promise<number>;
}
//# sourceMappingURL=local_storage_service.d.ts.map