import { ActionResult, ClientsInRoomMap } from "matrix-protection-suite";
import { Draupnir } from "../Draupnir";
import { ClientCapabilityFactory, ClientForUserID, RoomStateManagerFactory } from "matrix-protection-suite-for-matrix-bot-sdk";
import { IConfig } from "../config";
import { StringUserID, MatrixRoomID } from "@the-draupnir-project/matrix-basic-types";
import { SafeModeDraupnir } from "../safemode/DraupnirSafeMode";
import { SafeModeCause } from "../safemode/SafeModeCause";
import { SafeModeToggle } from "../safemode/SafeModeToggle";
import { TopLevelStores } from "../backingstore/DraupnirStores";
export declare class DraupnirFactory {
    private readonly clientsInRoomMap;
    private readonly clientCapabilityFactory;
    private readonly clientProvider;
    private readonly roomStateManagerFactory;
    private readonly stores;
    constructor(clientsInRoomMap: ClientsInRoomMap, clientCapabilityFactory: ClientCapabilityFactory, clientProvider: ClientForUserID, roomStateManagerFactory: RoomStateManagerFactory, stores: TopLevelStores);
    makeDraupnir(clientUserID: StringUserID, managementRoom: MatrixRoomID, config: IConfig, toggle: SafeModeToggle): Promise<ActionResult<Draupnir>>;
    makeSafeModeDraupnir(clientUserID: StringUserID, managementRoom: MatrixRoomID, config: IConfig, cause: SafeModeCause, toggle: SafeModeToggle): Promise<ActionResult<SafeModeDraupnir>>;
}
//# sourceMappingURL=DraupnirFactory.d.ts.map