import type { ApplicationSkuRecord } from "./application-sku-audit-service.js"; import type { ApplicationEntitlementBeneficiary, ApplicationEntitlementPageOptions, ApplicationSubscriptionPageOptions, DiscordClient } from "./discord-client.js"; import type { DiscordApplication, RequestOptions } from "./types.js"; export type ApplicationEntitlementTypeName = "application-subscription" | "developer-gift" | "free-purchase" | "premium-purchase" | "premium-subscription" | "purchase" | "test-mode-purchase" | "unknown" | "user-gift"; export type ApplicationSubscriptionStatusName = "active" | "ending" | "inactive" | "unknown"; export interface ApplicationMonetizationPage { boundaryIds: { first: string | null; last: string | null; }; cursor: { after: string | null; before: string | null; }; possibleMore: boolean; requestedLimit: number; returned: number; } export interface ApplicationEntitlementRecord { consumed: boolean | null; endsAt: string | null; id: string; skuId: string; startsAt: string | null; type: ApplicationEntitlementTypeName; unknownFieldCount: number; } export interface ApplicationEntitlementInspectionRecord extends ApplicationEntitlementRecord { deleted: boolean; } export interface ApplicationEntitlementInspectionResult { application: { botId: string; id: string; }; beneficiary: { id: string; type: "guild" | "user"; }; entitlement: ApplicationEntitlementInspectionRecord; evidence: { projectionComplete: boolean; unknownFields: number; unknownSkuFlagBits: number; unknownSkuFields: number; unknownSkuType: boolean; unknownType: boolean; }; privacy: ApplicationMonetizationPrivacy; schemaVersion: number; sku: { available: boolean; id: string; purchaseScope: ApplicationSkuRecord["flags"]["purchaseScope"]; type: ApplicationSkuRecord["type"]["name"]; }; status: "ok"; warnings: readonly string[]; } export interface ApplicationEntitlementAuditResult { application: { botId: string; id: string; }; beneficiary: { id: string; type: "guild" | "user"; }; evidence: { unknownFields: number; unknownTypes: number; }; inventory: { completeness: "bounded-present-access-page"; projectionComplete: boolean; skuIds: string[]; }; page: ApplicationMonetizationPage; privacy: ApplicationMonetizationPrivacy; records: ApplicationEntitlementRecord[]; schemaVersion: number; status: "ok"; warnings: readonly string[]; } export interface ApplicationSubscriptionRecord { canceledAt: string | null; currentPeriod: { end: string; start: string; }; entitlementCount: number; id: string; relatedSkus: { configuredIds: string[]; omittedUnconfigured: number; }; renewalSkus: { configuredIds: string[] | null; omittedUnconfigured: number; }; status: ApplicationSubscriptionStatusName; unknownFieldCount: number; } export interface ApplicationSubscriptionAuditResult { application: { botId: string; id: string; }; evidence: { unknownFields: number; unknownStatuses: number; }; inventory: { accessAuthority: "entitlements-only"; completeness: "bounded-user-and-sku-page"; projectionComplete: boolean; skuId: string; userId: string; }; page: ApplicationMonetizationPage; privacy: ApplicationMonetizationPrivacy; records: ApplicationSubscriptionRecord[]; schemaVersion: number; status: "ok"; warnings: readonly string[]; } export interface ApplicationMonetizationPrivacy { omitted: readonly string[]; persistence: "none"; rawPayloads: "omitted"; unknownFields: "counts-only"; } export interface ApplicationMonetizationAuditServiceClient extends Pick { } export interface ApplicationMonetizationAuditServiceOptions { client: ApplicationMonetizationAuditServiceClient; } export declare class ApplicationMonetizationAuditService { #private; constructor(options: ApplicationMonetizationAuditServiceOptions); auditEntitlements(application: DiscordApplication, botId: string, beneficiary: ApplicationEntitlementBeneficiary, requestedSkuIds: readonly string[], skus: readonly ApplicationSkuRecord[], options?: ApplicationEntitlementPageOptions): Promise; inspectEntitlement(application: DiscordApplication, botId: string, beneficiary: ApplicationEntitlementBeneficiary, entitlementId: string, requestedSkuId: string, skus: readonly ApplicationSkuRecord[], options?: RequestOptions): Promise; auditSubscriptions(application: DiscordApplication, botId: string, userId: string, requestedSkuId: string, configuredSkuScope: readonly string[], skus: readonly ApplicationSkuRecord[], options?: ApplicationSubscriptionPageOptions): Promise; } //# sourceMappingURL=application-monetization-audit-service.d.ts.map