import { AbstractProtection, ActionResult, MembershipChange, ProtectedRoomsSet, ProtectionDescription, RoomMembershipRevision, UserConsequences, UnknownConfig, OwnLifetime, Protection } from "matrix-protection-suite";
import { Draupnir } from "../Draupnir";
import { DraupnirProtection } from "./Protection";
export type BanPropagationProtectionCapabilities = {
    userConsequences: UserConsequences;
};
export type BanPropagationProtectionCapabilitiesDescription = ProtectionDescription<Draupnir, UnknownConfig, BanPropagationProtectionCapabilities>;
export declare class BanPropagationProtection extends AbstractProtection<BanPropagationProtectionCapabilitiesDescription> implements DraupnirProtection<BanPropagationProtectionCapabilitiesDescription> {
    private readonly draupnir;
    private readonly banPropagationPromptListener;
    constructor(description: BanPropagationProtectionCapabilitiesDescription, lifetime: OwnLifetime<Protection<BanPropagationProtectionCapabilitiesDescription>>, capabilities: BanPropagationProtectionCapabilities, protectedRoomsSet: ProtectedRoomsSet, draupnir: Draupnir);
    handleProtectionDisable(): void;
    handleMembershipChange(revision: RoomMembershipRevision, changes: MembershipChange[]): Promise<ActionResult<void>>;
    private handleBan;
    private handleUnban;
    private banReactionListener;
}
//# sourceMappingURL=BanPropagation.d.ts.map