import { Result } from "@gnuxie/typescript-result";
import { StringUserID, MatrixGlob, MatrixUserID } from "@the-draupnir-project/matrix-basic-types";
import { SetRoomMembership, WatchedPolicyRooms, PolicyRule, Recommendation, RoomUnbanner, PolicyRoomManager, RoomInviter, PolicyRuleType, PolicyListRevision } from "matrix-protection-suite";
import { UnlistedUserRedactionQueue } from "../../queues/UnlistedUserRedactionQueue";
import { ListMatches } from "../Rules";
import { MemberRooms, UnbanMembersPreview, UnbanMembersResult } from "./Unban";
export declare function matchMembers(setRoomMembership: SetRoomMembership, matches: {
    globs: MatrixGlob[];
    literals: StringUserID[];
}, options: {
    inviteMembers: boolean;
}): MemberRooms[];
export declare function revisionRulesMatchingEntity(entity: string, ruleType: PolicyRuleType, recommendations: Recommendation[], revision: PolicyListRevision): PolicyRule[];
export declare function revisionRulesMatchingUser(userID: StringUserID, recommendations: Recommendation[], revision: PolicyListRevision): PolicyRule[];
export declare function findBanPoliciesMatchingUsers(watchedPolicyRooms: WatchedPolicyRooms, users: StringUserID[]): ListMatches[];
export declare function unbanMembers(members: UnbanMembersPreview, capabilities: {
    roomUnbanner: RoomUnbanner;
    policyRoomManager: PolicyRoomManager;
    roomInviter: RoomInviter;
    unlistedUserRedactionQueue: UnlistedUserRedactionQueue;
}, options: {
    inviteMembers: boolean;
}): Promise<Result<UnbanMembersResult>>;
export declare function findUnbanInformationForMember(setRoomMembership: SetRoomMembership, entity: MatrixUserID, watchedPolicyRooms: WatchedPolicyRooms, { inviteMembers }: {
    inviteMembers: boolean;
}): UnbanMembersPreview;
//# sourceMappingURL=UnbanUsers.d.ts.map