import { StringRoomID } from "@the-draupnir-project/matrix-basic-types";
import { RoomBasicDetails } from "matrix-protection-suite";
import { RoomDetailsProvider, RoomTakedownCapability } from "../RoomTakedownCapability";
import { SynapseAdminClient } from "matrix-protection-suite-for-matrix-bot-sdk";
import { Result } from "@gnuxie/typescript-result";
import "../RoomTakedownCapability";
export declare class SynapseAdminRoomDetailsProvider implements RoomDetailsProvider {
    private readonly adminClient;
    constructor(adminClient: SynapseAdminClient);
    getRoomDetails(roomID: StringRoomID): Promise<Result<RoomBasicDetails>>;
}
export declare class SynapseAdminRoomTakedownCapability implements RoomTakedownCapability {
    private readonly adminClient;
    readonly requiredPermissions: never[];
    readonly requiredStatePermissions: never[];
    readonly requiredEventPermissions: never[];
    private readonly roomDetailsProvider;
    constructor(adminClient: SynapseAdminClient);
    isRoomTakendown(roomID: StringRoomID): Promise<Result<boolean>>;
    takedownRoom(roomID: StringRoomID): Promise<Result<RoomBasicDetails>>;
    getRoomDetails(roomID: StringRoomID): Promise<Result<RoomBasicDetails>>;
}
export declare class SimulatedRoomTakedownCapability implements RoomTakedownCapability {
    private readonly adminClient;
    readonly requiredPermissions: never[];
    readonly requiredStatePermissions: never[];
    readonly requiredEventPermissions: never[];
    private readonly roomDetailsProvider;
    isSimulated?: true;
    constructor(adminClient: SynapseAdminClient);
    isRoomTakendown(roomID: StringRoomID): Promise<Result<boolean>>;
    takedownRoom(roomID: StringRoomID): Promise<Result<RoomBasicDetails>>;
    getRoomDetails(roomID: StringRoomID): Promise<Result<RoomBasicDetails>>;
}
//# sourceMappingURL=SynapseAdminRoomTakedown.d.ts.map