import { StringUserID } from "@the-draupnir-project/matrix-basic-types";
import { ActionResult, LiteralPolicyRule } from "matrix-protection-suite";
import { UserRestrictionAuditLog } from "./UserRestrictionAuditLog";
import { BetterSqliteStore } from "../../backingstore/better-sqlite3/BetterSqliteStore";
import { Database } from "better-sqlite3";
import { Result } from "@gnuxie/typescript-result";
import { AccountRestriction } from "matrix-protection-suite-for-matrix-bot-sdk";
export declare class SqliteUserRestrictionAuditLog extends BetterSqliteStore implements UserRestrictionAuditLog {
    constructor(db: Database);
    static readonly StoreName = "user-restriction-audit-log.db";
    static createToplevel(storagePath: string): SqliteUserRestrictionAuditLog;
    isUserRestricted(userID: StringUserID): Promise<Result<boolean>>;
    private insertPolicyInfo;
    recordUserRestriction(userID: StringUserID, restrictionType: AccountRestriction, { sender, rule, isExistingRestriction, }: {
        sender: StringUserID;
        rule: LiteralPolicyRule | null;
        isExistingRestriction?: boolean | undefined;
    }): Promise<ActionResult<void>>;
    recordExistingUserRestriction(userID: StringUserID, restriction: AccountRestriction): Promise<Result<void>>;
    unrestrictUser(userID: StringUserID, sender: StringUserID): Promise<ActionResult<void>>;
}
//# sourceMappingURL=SqliteUserRestrictionAuditLog.d.ts.map