import { AtUri } from '@atproto/syntax';
import { Database } from '../db';
import { DatabaseSchema } from '../db/schema';
import { ModerationEventRow, ModerationSubjectStatusRow } from './types';
export declare const moderationSubjectStatusQueryBuilder: (db: DatabaseSchema) => import("kysely/dist/cjs/parser/select-parser").QueryBuilderWithSelection<{
    moderation_event: import("../db/schema/moderation_event").ModerationEvent;
    moderation_subject_status: import("../db/schema/moderation_subject_status").ModerationSubjectStatus;
    label: import("../db/schema/label").Label;
    repo_push_event: import("../db/schema/repo_push_event").RepoPushEvent;
    record_push_event: import("../db/schema/record_push_event").RecordPushEvent;
    blob_push_event: import("../db/schema/blob_push_event").BlobPushEvent;
    communication_template: import("../db/schema/communication_template").CommunicationTemplate;
    signing_key: import("../db/schema/signing_key").SigningKey;
    member: import("../db/schema/member").Member;
    set_detail: import("../db/schema/ozone_set").SetDetail;
    set_value: import("../db/schema/ozone_set").SetValue;
    setting: import("../db/schema/setting").Setting;
    account_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<import("../db/schema/account_events_stats").AccountEventsStats>;
    account_record_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<{
        subjectDid: import("kysely").GeneratedAlways<string>;
        totalReports: import("kysely").GeneratedAlways<number>;
        reportedCount: import("kysely").GeneratedAlways<number>;
        escalatedCount: import("kysely").GeneratedAlways<number>;
        appealedCount: import("kysely").GeneratedAlways<number>;
    }>;
    account_record_status_stats: import("kysely/dist/cjs/util/type-utils").Nullable<{
        did: import("kysely").GeneratedAlways<string>;
        subjectCount: import("kysely").GeneratedAlways<number>;
        pendingCount: import("kysely").GeneratedAlways<number>;
        processedCount: import("kysely").GeneratedAlways<number>;
        takendownCount: import("kysely").GeneratedAlways<number>;
    }>;
    account_strike: import("kysely/dist/cjs/util/type-utils").Nullable<import("../db/schema/account_strike").AccountStrike>;
    firehose_cursor: import("../db/schema/firehose_cursor").FirehoseCursor;
    job_cursor: import("../db/schema/job_cursor").JobCursor;
    record_events_stats: import("../db/schema/record_events_stats").RecordEventsStats;
    verification: import("../db/schema/verification").Verification;
    safelink_rule: import("../db/schema/safelink").SafelinkRule;
    safelink_event: import("../db/schema/safelink").SafelinkEvent;
    scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
}, "moderation_subject_status" | "account_events_stats" | "account_record_events_stats" | "account_record_status_stats" | "account_strike", {
    id: number;
    comment: string | null;
    createdAt: string;
    did: string;
    recordPath: string;
    blobCids: string[] | null;
    recordCid: string | null;
    reviewState: "tools.ozone.moderation.defs#reviewOpen" | "tools.ozone.moderation.defs#reviewEscalated" | "tools.ozone.moderation.defs#reviewClosed" | "tools.ozone.moderation.defs#reviewNone";
    muteUntil: string | null;
    lastReviewedAt: string | null;
    lastReviewedBy: string | null;
    lastReportedAt: string | null;
    lastAppealedAt: string | null;
    takendown: boolean;
    suspendUntil: string | null;
    appealed: boolean | null;
    updatedAt: string;
    tags: string[] | null;
    muteReportingUntil: string | null;
    hostingStatus: string | null;
    hostingDeletedAt: string | null;
    hostingUpdatedAt: string | null;
    hostingCreatedAt: string | null;
    hostingDeactivatedAt: string | null;
    hostingReactivatedAt: string | null;
    ageAssuranceState: string;
    priorityScore: number | undefined;
    ageAssuranceUpdatedBy: string | null | undefined;
} & import("kysely").Selection<{
    moderation_event: import("../db/schema/moderation_event").ModerationEvent;
    moderation_subject_status: import("../db/schema/moderation_subject_status").ModerationSubjectStatus;
    label: import("../db/schema/label").Label;
    repo_push_event: import("../db/schema/repo_push_event").RepoPushEvent;
    record_push_event: import("../db/schema/record_push_event").RecordPushEvent;
    blob_push_event: import("../db/schema/blob_push_event").BlobPushEvent;
    communication_template: import("../db/schema/communication_template").CommunicationTemplate;
    signing_key: import("../db/schema/signing_key").SigningKey;
    member: import("../db/schema/member").Member;
    set_detail: import("../db/schema/ozone_set").SetDetail;
    set_value: import("../db/schema/ozone_set").SetValue;
    setting: import("../db/schema/setting").Setting;
    account_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<import("../db/schema/account_events_stats").AccountEventsStats>;
    account_record_events_stats: {
        subjectDid: import("kysely").GeneratedAlways<string>;
        totalReports: import("kysely").GeneratedAlways<number>;
        reportedCount: import("kysely").GeneratedAlways<number>;
        escalatedCount: import("kysely").GeneratedAlways<number>;
        appealedCount: import("kysely").GeneratedAlways<number>;
    };
    account_record_status_stats: {
        did: import("kysely").GeneratedAlways<string>;
        subjectCount: import("kysely").GeneratedAlways<number>;
        pendingCount: import("kysely").GeneratedAlways<number>;
        processedCount: import("kysely").GeneratedAlways<number>;
        takendownCount: import("kysely").GeneratedAlways<number>;
    };
    account_strike: import("../db/schema/account_strike").AccountStrike;
    firehose_cursor: import("../db/schema/firehose_cursor").FirehoseCursor;
    job_cursor: import("../db/schema/job_cursor").JobCursor;
    record_events_stats: import("../db/schema/record_events_stats").RecordEventsStats;
    verification: import("../db/schema/verification").Verification;
    safelink_rule: import("../db/schema/safelink").SafelinkRule;
    safelink_event: import("../db/schema/safelink").SafelinkEvent;
    scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
}, "moderation_subject_status" | "account_events_stats", "account_events_stats.reportCount" | "account_events_stats.appealCount" | "account_events_stats.suspendCount" | "account_events_stats.escalateCount" | "account_events_stats.takedownCount"> & import("kysely").Selection<{
    moderation_event: import("../db/schema/moderation_event").ModerationEvent;
    moderation_subject_status: import("../db/schema/moderation_subject_status").ModerationSubjectStatus;
    label: import("../db/schema/label").Label;
    repo_push_event: import("../db/schema/repo_push_event").RepoPushEvent;
    record_push_event: import("../db/schema/record_push_event").RecordPushEvent;
    blob_push_event: import("../db/schema/blob_push_event").BlobPushEvent;
    communication_template: import("../db/schema/communication_template").CommunicationTemplate;
    signing_key: import("../db/schema/signing_key").SigningKey;
    member: import("../db/schema/member").Member;
    set_detail: import("../db/schema/ozone_set").SetDetail;
    set_value: import("../db/schema/ozone_set").SetValue;
    setting: import("../db/schema/setting").Setting;
    account_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<import("../db/schema/account_events_stats").AccountEventsStats>;
    account_record_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<{
        subjectDid: import("kysely").GeneratedAlways<string>;
        totalReports: import("kysely").GeneratedAlways<number>;
        reportedCount: import("kysely").GeneratedAlways<number>;
        escalatedCount: import("kysely").GeneratedAlways<number>;
        appealedCount: import("kysely").GeneratedAlways<number>;
    }>;
    account_record_status_stats: {
        did: import("kysely").GeneratedAlways<string>;
        subjectCount: import("kysely").GeneratedAlways<number>;
        pendingCount: import("kysely").GeneratedAlways<number>;
        processedCount: import("kysely").GeneratedAlways<number>;
        takendownCount: import("kysely").GeneratedAlways<number>;
    };
    account_strike: import("../db/schema/account_strike").AccountStrike;
    firehose_cursor: import("../db/schema/firehose_cursor").FirehoseCursor;
    job_cursor: import("../db/schema/job_cursor").JobCursor;
    record_events_stats: import("../db/schema/record_events_stats").RecordEventsStats;
    verification: import("../db/schema/verification").Verification;
    safelink_rule: import("../db/schema/safelink").SafelinkRule;
    safelink_event: import("../db/schema/safelink").SafelinkEvent;
    scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
}, "moderation_subject_status" | "account_events_stats" | "account_record_events_stats", "account_record_events_stats.totalReports" | "account_record_events_stats.reportedCount" | "account_record_events_stats.escalatedCount" | "account_record_events_stats.appealedCount"> & import("kysely").Selection<{
    moderation_event: import("../db/schema/moderation_event").ModerationEvent;
    moderation_subject_status: import("../db/schema/moderation_subject_status").ModerationSubjectStatus;
    label: import("../db/schema/label").Label;
    repo_push_event: import("../db/schema/repo_push_event").RepoPushEvent;
    record_push_event: import("../db/schema/record_push_event").RecordPushEvent;
    blob_push_event: import("../db/schema/blob_push_event").BlobPushEvent;
    communication_template: import("../db/schema/communication_template").CommunicationTemplate;
    signing_key: import("../db/schema/signing_key").SigningKey;
    member: import("../db/schema/member").Member;
    set_detail: import("../db/schema/ozone_set").SetDetail;
    set_value: import("../db/schema/ozone_set").SetValue;
    setting: import("../db/schema/setting").Setting;
    account_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<import("../db/schema/account_events_stats").AccountEventsStats>;
    account_record_events_stats: import("kysely/dist/cjs/util/type-utils").Nullable<{
        subjectDid: import("kysely").GeneratedAlways<string>;
        totalReports: import("kysely").GeneratedAlways<number>;
        reportedCount: import("kysely").GeneratedAlways<number>;
        escalatedCount: import("kysely").GeneratedAlways<number>;
        appealedCount: import("kysely").GeneratedAlways<number>;
    }>;
    account_record_status_stats: import("kysely/dist/cjs/util/type-utils").Nullable<{
        did: import("kysely").GeneratedAlways<string>;
        subjectCount: import("kysely").GeneratedAlways<number>;
        pendingCount: import("kysely").GeneratedAlways<number>;
        processedCount: import("kysely").GeneratedAlways<number>;
        takendownCount: import("kysely").GeneratedAlways<number>;
    }>;
    account_strike: import("../db/schema/account_strike").AccountStrike;
    firehose_cursor: import("../db/schema/firehose_cursor").FirehoseCursor;
    job_cursor: import("../db/schema/job_cursor").JobCursor;
    record_events_stats: import("../db/schema/record_events_stats").RecordEventsStats;
    verification: import("../db/schema/verification").Verification;
    safelink_rule: import("../db/schema/safelink").SafelinkRule;
    safelink_event: import("../db/schema/safelink").SafelinkEvent;
    scheduled_action: import("../db/schema/scheduled-action").ScheduledAction;
}, "moderation_subject_status" | "account_events_stats" | "account_record_events_stats" | "account_record_status_stats", "account_record_status_stats.subjectCount" | "account_record_status_stats.pendingCount" | "account_record_status_stats.processedCount" | "account_record_status_stats.takendownCount">, "account_strike.totalStrikeCount" | "account_strike.firstStrikeAt" | "account_strike.lastStrikeAt" | "account_strike.activeStrikeCount as strikeCount">;
export declare const adjustModerationSubjectStatus: (db: Database, moderationEvent: ModerationEventRow, blobCids?: string[]) => Promise<ModerationSubjectStatusRow | null>;
export declare const getStatusIdentifierFromSubject: (subject: string | AtUri) => {
    did: string;
    recordPath: string;
};
//# sourceMappingURL=status.d.ts.map