import { WatchedPolicyRoom, WatchedPolicyRooms } from "matrix-protection-suite";
import { Draupnir } from "../Draupnir";
import { DocumentNode } from "@the-draupnir-project/interface-manager";
import { MatrixRoomID, StringRoomID } from "@the-draupnir-project/matrix-basic-types";
export declare const DraupnirStatusCommand: import("@the-draupnir-project/interface-manager").CommandDescription<import("@the-draupnir-project/interface-manager").CommandMeta<Draupnir, unknown, StatusInfo, [], unknown, import("@the-draupnir-project/interface-manager").KeywordsMeta>>;
export type WatchedPolicyRoomsInfo = {
    subscribedLists: WatchedPolicyRoom[];
    subscribedAndProtectedLists: WatchedPolicyRoom[];
    subscribedButPartedLists: WatchedPolicyRoom[];
};
export type StatusInfo = {
    numberOfProtectedRooms: number;
    numberOfUniqueMembers: number;
    version: string;
    branch: string;
    repository: string;
    documentationURL: string;
} & DraupnirNotificationRoomsInfo & WatchedPolicyRoomsInfo;
export declare function groupWatchedPolicyRoomsByProtectionStatus(watchedPolicyRooms: WatchedPolicyRooms, allJoinedRooms: StringRoomID[], protectedRooms: MatrixRoomID[]): WatchedPolicyRoomsInfo;
type DraupnirNotificationRoomsInfo = {
    readonly policyChangeNotificationRoomID: StringRoomID | undefined;
    readonly roomDiscoveryNotificationRoomID: StringRoomID | undefined;
};
export declare function draupnirStatusInfo(draupnir: Draupnir): StatusInfo;
export declare function renderPolicyList(list: WatchedPolicyRoom): DocumentNode;
export declare function renderStatusInfo(info: StatusInfo): DocumentNode;
export {};
//# sourceMappingURL=StatusCommand.d.ts.map