/**
 * Local file storage provider implementation
 */
import { StorageProvider, DataQuery, StoredData, CleanupResult, StorageStatus, DataMetadata } from '../../types';
/**
 * Local file provider options
 */
export interface LocalFileProviderOptions {
    directory: string;
    maxSizeBytes?: number;
    encrypt?: boolean;
    compressionLevel?: number;
}
/**
 * Local file storage provider implementation
 */
export declare class LocalFileProvider implements StorageProvider {
    private options;
    private initialized;
    private index;
    private indexPath;
    private lastOperation;
    private metrics;
    /**
     * Create a new local file storage provider
     *
     * @param options - Provider options
     */
    constructor(options: LocalFileProviderOptions);
    /**
     * Initialize the provider
     */
    initialize(): Promise<void>;
    /**
     * Store data
     *
     * @param data - Data to store
     * @param metadata - Data metadata
     * @returns Data ID
     */
    store(data: any, metadata: DataMetadata): Promise<string>;
    /**
     * Retrieve data
     *
     * @param query - Data query
     * @returns Stored data
     */
    retrieve(query: DataQuery): Promise<StoredData[]>;
    /**
     * Update data
     *
     * @param data - Data to update
     */
    update(data: StoredData): Promise<void>;
    /**
     * Delete data
     *
     * @param id - Data ID
     */
    delete(id: string): Promise<void>;
    /**
     * Store multiple data items
     *
     * @param items - Data items to store
     * @returns Data IDs
     */
    storeBatch(items: Array<{
        data: any;
        metadata: DataMetadata;
    }>): Promise<string[]>;
    /**
     * Clean up old data
     *
     * @param category - Data category
     * @param retentionDays - Retention period in days
     * @returns Cleanup result
     */
    cleanup(category: string, retentionDays: number): Promise<CleanupResult>;
    /**
     * Get storage status
     *
     * @returns Storage status
     */
    getStatus(): Promise<StorageStatus>;
    /**
     * Shutdown the provider
     */
    shutdown(): Promise<void>;
    /**
     * Ensure provider is initialized
     *
     * @throws StorageError if not initialized
     */
    private ensureInitialized;
}
/**
 * Create a new local file storage provider
 *
 * @param options - Provider options
 * @returns Local file storage provider
 */
export declare function createLocalFileProvider(options: LocalFileProviderOptions): StorageProvider;
