import { RandomTable } from '../../../domain/index.js';
import { TableRepository } from '../../../ports/index.js';
/**
 * In-memory implementation of the TableRepository interface.
 * Stores tables in memory, useful for testing and development.
 */
export declare class InMemoryTableRepository implements TableRepository {
    private tables;
    /**
     * Saves a table to the repository.
     * @param table The table to save.
     * @returns The ID of the saved table.
     */
    save(table: RandomTable): Promise<string>;
    /**
     * Gets a table by its ID.
     * @param id The ID of the table to get.
     * @returns The table, or null if not found.
     */
    getById(id: string): Promise<RandomTable | null>;
    /**
     * Updates an existing table.
     * @param table The updated table.
     * @throws Error if the table does not exist.
     */
    update(table: RandomTable): Promise<void>;
    /**
     * Lists tables based on optional filter criteria.
     * @param filter Optional filter criteria.
     * @returns An array of tables matching the filter.
     */
    list(filter?: Record<string, unknown>): Promise<RandomTable[]>;
    /**
     * Deletes a table by its ID.
     * @param id The ID of the table to delete.
     * @throws Error if the table does not exist.
     */
    delete(id: string): Promise<void>;
    /**
     * Clears all tables from the repository.
     * Useful for testing.
     */
    clear(): void;
}
