import type { DataStore } from '../types/data-store.js';
import type { EventLog } from '../types/event-log.js';
import type { MessageStore } from '../types/message-store.js';
import type { RecordsWriteMessage } from '../types/records-types.js';
import type { Filter, TimestampedMessage } from '../types/message-types.js';
/**
 * A class that provides an abstraction for the usage of MessageStore, DataStore, and EventLog.
 */
export declare class StorageController {
    static query(messageStore: MessageStore, dataStore: DataStore, tenant: string, filter: Filter): Promise<RecordsWriteMessageWithOptionalEncodedData[]>;
    /**
     * Deletes a message.
     */
    private static delete;
    /**
     * Deletes all messages in `existingMessages` that are older than the `comparedToMessage` in the given tenant,
     * but keep the initial write write for future processing by ensuring its `isLatestBaseState` index is "false".
     */
    static deleteAllOlderMessagesButKeepInitialWrite(tenant: string, existingMessages: TimestampedMessage[], comparedToMessage: TimestampedMessage, messageStore: MessageStore, dataStore: DataStore, eventLog: EventLog): Promise<void>;
}
export declare type RecordsWriteMessageWithOptionalEncodedData = RecordsWriteMessage & {
    encodedData?: string;
};
//# sourceMappingURL=storage-controller.d.ts.map