import type { DiscordClient } from "./discord-client.js"; import type { ScopePolicy } from "./policy.js"; import type { RequestOptions } from "./types.js"; export interface BanAuditListOptions extends RequestOptions { afterUserId?: string; includeReasons?: boolean; limit?: number; } export interface BanAuditGetOptions extends RequestOptions { includeReason?: boolean; } export interface BanAuditRecord { bot: boolean; globalName: string | null; hasReason: boolean; reason?: string | null; userId: string; username: string; } export interface BanAuditClient { getGuild: DiscordClient["getGuild"]; getGuildBan: DiscordClient["getGuildBan"]; getGuildMember: DiscordClient["getGuildMember"]; getGuildRoles: DiscordClient["getGuildRoles"]; listGuildBans: DiscordClient["listGuildBans"]; } export interface BanAuditServiceOptions { client: BanAuditClient; policy: Pick; } export interface BanAuditAccess { banMembers: true; botAdministrator: boolean; botIsGuildOwner: boolean; complete: true; requiredPermission: "BAN_MEMBERS"; } export declare function assertBanAuditListInput(guildId: string, options: BanAuditListOptions): void; export declare function assertBanAuditGetInput(guildId: string, userId: string, options: BanAuditGetOptions): void; export declare class BanAuditService { #private; constructor(options: BanAuditServiceOptions); list(applicationId: string, botId: string, guildId: string, options?: BanAuditListOptions): Promise<{ access: BanAuditAccess; applicationId: string; bans: BanAuditRecord[]; botId: string; guildId: string; page: { afterUserId: string | null; hasMore: boolean; nextAfterUserId: string | null; requestedLimit: number; returned: number; }; privacy: { caches: "none"; persistence: "none"; profiles: "minimized"; rawPayloads: "omitted"; reasons: "included" | "omitted"; }; schemaVersion: number; status: "ok"; }>; get(applicationId: string, botId: string, guildId: string, userId: string, options?: BanAuditGetOptions): Promise<{ access: BanAuditAccess; applicationId: string; botId: string; found: false; guildId: string; privacy: { caches: "none"; persistence: "none"; profiles: "minimized"; rawPayloads: "omitted"; reasons: "included" | "omitted"; }; schemaVersion: number; status: "not-found"; userId: string; ban?: never; } | { userId?: never; access: BanAuditAccess; applicationId: string; ban: BanAuditRecord; botId: string; found: true; guildId: string; privacy: { caches: "none"; persistence: "none"; profiles: "minimized"; rawPayloads: "omitted"; reasons: "included" | "omitted"; }; schemaVersion: number; status: "ok"; }>; } //# sourceMappingURL=ban-audit-service.d.ts.map