import React, { ReactNode } from "react";
import { Room, MatrixClient, RoomType, HierarchyRoom } from "matrix-js-sdk/src/matrix";
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
interface IProps {
    space: Room;
    initialText?: string;
    additionalButtons?: ReactNode;
    showRoom(cli: MatrixClient, hierarchy: RoomHierarchy, roomId: string, roomType?: RoomType): void;
}
export declare const showRoom: (cli: MatrixClient, hierarchy: RoomHierarchy, roomId: string, roomType?: RoomType) => void;
export declare const joinRoom: (cli: MatrixClient, hierarchy: RoomHierarchy, roomId: string) => Promise<unknown>;
interface IHierarchyLevelProps {
    root: HierarchyRoom;
    roomSet: Set<HierarchyRoom>;
    hierarchy: RoomHierarchy;
    parents: Set<string>;
    selectedMap?: Map<string, Set<string>>;
    onViewRoomClick(roomId: string, roomType?: RoomType): void;
    onJoinRoomClick(roomId: string, parents: Set<string>): Promise<unknown>;
    onToggleClick?(parentId: string, childId: string): void;
}
export declare const toLocalRoom: (cli: MatrixClient, room: HierarchyRoom, hierarchy: RoomHierarchy) => HierarchyRoom;
export declare const HierarchyLevel: React.FC<IHierarchyLevelProps>;
export declare const useRoomHierarchy: (space: Room) => {
    loading: boolean;
    rooms?: HierarchyRoom[];
    hierarchy?: RoomHierarchy;
    error?: Error;
    loadMore(pageSize?: number): Promise<void>;
};
declare const SpaceHierarchy: React.FC<IProps>;
export default SpaceHierarchy;
