import type { IntegrationMetadataRecord } from "../store.js";
import type { IntegrationId } from "../store.js";
/**
 * Storage backend interface for persisting and retrieving integration metadata.
 */
export interface MetadataStorage {
    /**
     * Save metadata for an integration. Converts to gron format for grep-ability.
     */
    saveMetadata(integrationId: IntegrationId, metadata: IntegrationMetadataRecord): Promise<void>;
    /**
     * Load metadata for an integration. Returns path to gron file if cached.
     * Also updates file access time to prevent cleanup.
     */
    loadMetadata(integrationId: IntegrationId): Promise<string | null>;
    /**
     * Get the age of cached metadata in milliseconds.
     * Returns null if metadata is not cached.
     */
    getAge(integrationId: IntegrationId): Promise<number | null>;
    /**
     * Invalidate (delete) cached metadata for an integration.
     * Used when forcing a refresh.
     */
    invalidate(integrationId: IntegrationId): Promise<void>;
    /**
     * Initialize storage - cleanup old sessions, start periodic cleanup.
     */
    initialize(): Promise<void>;
    /**
     * Cleanup storage on shutdown - stop periodic tasks, remove session directory.
     */
    cleanup(): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map