import { Room } from "matrix-js-sdk/src/matrix";
import { SortAlgorithm } from "../models";
import { OrderingAlgorithm } from "./OrderingAlgorithm";
import { RoomUpdateCause, TagID } from "../../models";
/**
 * Uses the natural tag sorting algorithm order to determine tag ordering. No
 * additional behavioural changes are present.
 */
export declare class NaturalAlgorithm extends OrderingAlgorithm {
    private cachedCategorizedOrderedRooms;
    constructor(tagId: TagID, initialSortingAlgorithm: SortAlgorithm);
    setRooms(rooms: Room[]): void;
    handleRoomUpdate(room: Room, cause: RoomUpdateCause): boolean;
    /**
     * Remove a room from the cached room list
     * @param room Room to remove
     * @returns {boolean} true when room list should update as result
     */
    private removeRoom;
    /**
     * Sets cachedOrderedRooms from cachedCategorizedOrderedRooms
     */
    private buildCachedOrderedRooms;
    private getRoomIsMuted;
    private categorizeRooms;
    private onPossibleMuteChange;
}
