import { Result } from "@gnuxie/typescript-result";
import { StringRoomID } from "@the-draupnir-project/matrix-basic-types";
import { RoomAuditLog, RoomTakedownDetails } from "./RoomAuditLog";
import { LiteralPolicyRule, RoomBasicDetails } from "matrix-protection-suite";
import { BetterSqliteOptions, BetterSqliteStore } from "../../backingstore/better-sqlite3/BetterSqliteStore";
import { Database } from "better-sqlite3";
export type RoomTakedown = {
    id: number;
    policy_id: string;
    target_room_id: StringRoomID;
    created_at: number;
};
export declare class SqliteRoomAuditLog extends BetterSqliteStore implements RoomAuditLog {
    private readonly takedownRooms;
    constructor(options: BetterSqliteOptions, db: Database);
    static readonly StoreName = "room-audit-log.db";
    static createToplevel(storagePath: string): SqliteRoomAuditLog;
    takedownRoom(policy: LiteralPolicyRule, details: RoomBasicDetails): Promise<Result<void>>;
    getTakedownDetails(roomID: StringRoomID): Promise<Result<RoomTakedownDetails | undefined>>;
    private loadTakendownRooms;
    isRoomTakendown(roomID: StringRoomID): boolean;
}
//# sourceMappingURL=SqliteRoomAuditLog.d.ts.map