import { ContentStorage } from '../memory/content-storage';
import { ContentReference, ContentReferenceConfig, ContentReferenceStats } from '../types/content-reference';
import { Logger } from '@hashgraphonline/standards-sdk';

/**
 * Content metadata interface for adapter compatibility
 */
interface AdapterContentMetadata {
    mimeType?: string;
    fileName?: string;
    sizeBytes?: number;
    [key: string]: unknown;
}
/**
 * Manages content store lifecycle and cross-package registration
 */
export declare class ContentStoreManager {
    private contentStorage;
    private adapter;
    private resolver;
    private logger;
    protected isRegistered: boolean;
    constructor(maxMessageStorage?: number, referenceConfig?: Partial<ContentReferenceConfig>, logger?: Logger);
    /**
     * Initialize and register content storage for cross-package access
     */
    initialize(): Promise<void>;
    /**
     * Get the underlying ContentStorage instance
     */
    getContentStorage(): ContentStorage;
    /**
     * Get storage statistics
     */
    getStats(): Promise<ContentReferenceStats>;
    /**
     * Update configuration
     */
    updateConfig(config: Partial<ContentReferenceConfig>): Promise<void>;
    /**
     * Perform manual cleanup
     */
    performCleanup(): Promise<{
        cleanedUp: number;
        errors: string[];
    }>;
    /**
     * Check if content should be stored as reference
     */
    shouldUseReference(content: Buffer | string): boolean;
    /**
     * Store content if it's large enough
     */
    storeContentIfLarge(content: Buffer | string, metadata: AdapterContentMetadata): Promise<ContentReference | null>;
    /**
     * Cleanup and unregister
     */
    dispose(): Promise<void>;
    /**
     * Check if the manager is initialized
     */
    isInitialized(): boolean;
}
export {};
