import type { GameModelAPI } from '../domains/gameModel.js'; import type { Scalars } from '../generated/graphql.js'; /** Options for {@link ModerationKit}. */ export interface ModerationKitOptions { /** The `typePrefix` the moderation blueprint was deployed with. */ typePrefix?: string; } /** A parsed report row. */ export interface KitModReport { containerId: string; reporterUserId: string; subjectUserId: string; reason: string; detail: string; status: string; resolution: string; filedAtMs: number; } /** * Runtime helpers for the moderation blueprint: file reports, read the * admin escalation queue, resolve reports, and manage the caller's personal * mute list (client-enforced chat filtering). Enforcement stays on platform * surfaces — tier revocation and grid permissions. * * Obtained via `client.kit(appId).moderation`. */ export declare class ModerationKit { private readonly appId; private readonly gameModel; private readonly names; constructor(appId: Scalars['BigInt']['input'], gameModel: GameModelAPI, options?: ModerationKitOptions); /** File a report (creates the caller's report row in the queue). */ report(input: { reporterUserId: string; subjectUserId: string; reason: string; detail?: string; }): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** The escalation queue (admins; filter by status, default `'open'`). */ queue(status?: string): Promise; /** ADMIN — resolve a report with a disposition. */ resolve(reportContainerId: string, status: 'actioned' | 'dismissed', resolution: string): Promise>; /** Mute a player (adds to YOUR client-enforced mute list). */ mute(ownerUserId: string, mutedUserId: string): Promise<{ __typename?: "GmContainer"; containerId: string; appId: string; sessionId: string | null; typeName: string; displayName: string; description: string | null; ownerUserId: string | null; metadataJson: string; }>; /** Unmute: delete the matching mute row. */ unmute(ownerUserId: string, mutedUserId: string): Promise; /** The caller's mute list (feed it to your chat renderer). */ mutes(ownerUserId: string): Promise>; } //# sourceMappingURL=moderation.d.ts.map