import { PolicyListRevision, PolicyRuleChange } from "matrix-protection-suite";
import { RoomAuditLog } from "./RoomAuditLog";
import { Result } from "@gnuxie/typescript-result";
import { RoomTakedownCapability } from "../../capabilities/RoomTakedownCapability";
export type RoomTakedownService = {
    handlePolicyChange(revision: PolicyListRevision, changes: PolicyRuleChange[]): Promise<Result<void>>;
    checkAllRooms(revision: PolicyListRevision): Promise<Result<void>>;
};
/**
 * This exists as the main handler for reacting to literal room policies
 * (that have been reversed from hashed policies elsewhere) AND
 * moving discovered rooms into the hashStore. Although it's not clear
 * whether we need to do that?
 */
export declare class StandardRoomTakedown implements RoomTakedownService {
    private readonly auditLog;
    private readonly takedownCapability;
    constructor(auditLog: RoomAuditLog, takedownCapability: RoomTakedownCapability);
    private takedownRoom;
    handlePolicyChange(revision: PolicyListRevision, changes: PolicyRuleChange[]): Promise<Result<void>>;
    checkAllRooms(revision: PolicyListRevision): Promise<Result<void>>;
}
//# sourceMappingURL=RoomTakedown.d.ts.map