import { BasicInvocationInformation } from "@the-draupnir-project/interface-manager";
import { PolicyRoomManager, PolicyRuleType, Protection, ProtectionDescription, RoomResolver, SHA256HashStore, WatchedPolicyRooms } from "matrix-protection-suite";
import { MatrixRoomID, MatrixUserID, StringEventID, StringUserID } from "@the-draupnir-project/matrix-basic-types";
import { RoomDetailsProvider } from "../../capabilities/RoomTakedownCapability";
export type TakedownPolicyPreview = {
    ruleType: PolicyRuleType;
    entity: string;
    policyRoom: MatrixRoomID;
    takedownProtections: {
        name: string;
        isEnabled: boolean;
    }[];
};
export declare const DraupnirTakedownCommand: import("@the-draupnir-project/interface-manager").CommandDescription<import("@the-draupnir-project/interface-manager").CommandMeta<DraupnirTakedownCommandContext, BasicInvocationInformation, StringEventID | TakedownPolicyPreview, [entity: string | MatrixRoomID | MatrixUserID | import("@the-draupnir-project/matrix-basic-types").MatrixRoomAlias, policyRoomDesignator: string | MatrixRoomID | import("@the-draupnir-project/matrix-basic-types").MatrixRoomAlias], unknown, {
    "no-confirm": unknown;
    "plain-text": unknown;
}>>;
export type DraupnirTakedownCommandContext = {
    policyRoomManager: PolicyRoomManager;
    watchedPolicyRooms: WatchedPolicyRooms;
    defaultReasons: string[];
    roomResolver: RoomResolver;
    clientUserID: StringUserID;
    hashStore: SHA256HashStore | undefined;
    detailsProvider: RoomDetailsProvider | undefined;
    enabledProtections: Protection<ProtectionDescription>[];
};
//# sourceMappingURL=Takedown.d.ts.map