export declare const OPERATION_KEY_HASH_PATTERN: RegExp; export declare const ENTITLEMENT_FULFILLMENT_REFERENCE_HASH_PATTERN: RegExp; export declare const OPERATION_KINDS: readonly ["announcement-crosspost", "announcement-subscription", "application-emoji-change", "application-entitlement-change", "application-intent-enablement", "application-role-connection-metadata-change", "attachment-message", "automod-change", "bot-profile-change", "bulk-guild-ban", "bulk-member-role-change", "channel-clone", "channel-creation", "channel-deletion", "channel-metadata-change", "channel-ordering", "channel-permission-overwrite", "channel-permission-sync", "component-message", "embed-message", "direct-message-change", "forum-post", "forum-tag-change", "global-application-command-change", "guild-application-command-change", "guild-community-change", "guild-departure", "guild-expression-change", "guild-incident-action-change", "guild-profile-change", "guild-prune", "guild-scaffold", "guild-settings-change", "guild-template-change", "integration-deletion", "invite-creation", "invite-deletion", "member-nickname-change", "member-moderation", "member-role-change", "member-verification-change", "member-voice-change", "message-deletion", "message-forward", "message-pin", "native-interaction-command-change", "onboarding-change", "poll-create", "poll-end", "reaction-moderation", "role-creation", "role-configuration", "role-deletion", "role-ordering", "scheduled-event-change", "guild-soundboard-change", "soundboard-playback", "stage-instance-change", "thread-create", "thread-governance-change", "voice-channel-status-change", "welcome-screen-change", "webhook-change", "webhook-creation", "webhook-deletion", "webhook-message-deletion", "webhook-message-edit", "webhook-message-send", "widget-settings-change"]; export type OperationKind = typeof OPERATION_KINDS[number]; export type ApplicationOperationKind = "application-emoji-change" | "application-entitlement-change" | "application-intent-enablement" | "application-role-connection-metadata-change" | "bot-profile-change" | "global-application-command-change"; export type DirectMessageOperationKind = "direct-message-change"; export type GuildOperationKind = Exclude; export type StandardGuildOperationKind = Exclude; export type OperationReceiptStatus = "completed" | "failed" | "pending" | "uncertain"; export type OperationVerification = "drift" | "match" | null; interface OperationReceiptFields { activityId: string; error: string | null; guildId: string; operationKeyHash: string; planDigest: string; resourceId: string | null; status: OperationReceiptStatus; timestamp: string; verification: OperationVerification; } export interface StandardOperationReceipt extends OperationReceiptFields { kind: StandardGuildOperationKind; schemaVersion: 1; } export interface ComponentMessageOperationReceipt extends OperationReceiptFields { kind: "component-message"; requestDigest: string; schemaVersion: 2; } export interface EmbedMessageOperationReceipt extends OperationReceiptFields { kind: "embed-message"; requestDigest: string; schemaVersion: 2; } export interface AutoModerationOperationReceipt extends OperationReceiptFields { kind: "automod-change"; requestDigest: string; schemaVersion: 2; } export type OperationReceipt = AutoModerationOperationReceipt | ComponentMessageOperationReceipt | EmbedMessageOperationReceipt | StandardOperationReceipt; interface ApplicationOperationReceiptFields { activityId: string; applicationId: string; error: string | null; operationKeyHash: string; planDigest: string; resourceId: string | null; status: OperationReceiptStatus; timestamp: string; verification: OperationVerification; } export type StandardApplicationOperationKind = Exclude; export interface StandardApplicationOperationReceipt extends ApplicationOperationReceiptFields { kind: StandardApplicationOperationKind; schemaVersion: 1; } export declare const APPLICATION_ENTITLEMENT_OPERATION_ACTIONS: readonly ["consume", "create-test", "delete-test"]; export type ApplicationEntitlementOperationAction = typeof APPLICATION_ENTITLEMENT_OPERATION_ACTIONS[number]; export type ApplicationEntitlementOperationStage = "reserved" | "target-known" | "terminal"; export interface ApplicationEntitlementOperationReceipt extends ApplicationOperationReceiptFields { action: ApplicationEntitlementOperationAction; beneficiaryId: string; beneficiaryType: "guild" | "user"; creationOperationKeyHash: string | null; entitlementId: string | null; fulfillmentReferenceHash: string | null; kind: "application-entitlement-change"; resourceId: string | null; schemaVersion: 2; skuId: string; stage: ApplicationEntitlementOperationStage; verification: "match" | null; } export type ApplicationOperationReceipt = ApplicationEntitlementOperationReceipt | StandardApplicationOperationReceipt; export declare const DIRECT_MESSAGE_ACTIONS: readonly ["delete", "edit", "reply", "send"]; export type DirectMessageAction = typeof DIRECT_MESSAGE_ACTIONS[number]; export declare const DIRECT_MESSAGE_FORMATS: readonly ["attachment", "components-v2", "text"]; export type DirectMessageFormat = typeof DIRECT_MESSAGE_FORMATS[number]; export type DirectMessageReceiptStage = "channel-ready" | "message-dispatched" | "reserved" | "terminal"; export interface DirectMessageOperationReceipt { action: DirectMessageAction; activityId: string; attachmentSizeBytes: number | null; channelId: string | null; error: string | null; kind: DirectMessageOperationKind; messageFormat: DirectMessageFormat | null; messageId: string | null; operationKeyHash: string; planDigest: string; recipientId: string; replyToMessageId: string | null; requestDigest: string; schemaVersion: 2; stage: DirectMessageReceiptStage; status: OperationReceiptStatus; timestamp: string; verification: OperationVerification; } export interface OperationReservation { created: boolean; receipt: OperationReceipt; } export interface OperationStore { finish(receipt: OperationReceipt): Promise; finishApplication?(receipt: ApplicationOperationReceipt): Promise; checkpointApplicationEntitlement?(receipt: ApplicationEntitlementOperationReceipt): Promise; checkpointDirectMessage?(receipt: DirectMessageOperationReceipt): Promise; finishDirectMessage?(receipt: DirectMessageOperationReceipt): Promise; get(kind: GuildOperationKind, operationKeyHash: string): Promise; getApplication?(kind: ApplicationOperationKind, operationKeyHash: string): Promise; getDirectMessage?(kind: DirectMessageOperationKind, operationKeyHash: string): Promise; reserve(receipt: OperationReceipt): Promise; reserveApplication?(receipt: ApplicationOperationReceipt): Promise; reserveDirectMessage?(receipt: DirectMessageOperationReceipt): Promise; } export interface ApplicationOperationReservation { created: boolean; receipt: ApplicationOperationReceipt; } export interface DirectMessageOperationReservation { created: boolean; receipt: DirectMessageOperationReceipt; } export interface ApplicationOperationStore extends OperationStore { finishApplication(receipt: ApplicationOperationReceipt): Promise; getApplication(kind: ApplicationOperationKind, operationKeyHash: string): Promise; reserveApplication(receipt: ApplicationOperationReceipt): Promise; } export interface ApplicationEntitlementOperationStore extends ApplicationOperationStore { checkpointApplicationEntitlement(receipt: ApplicationEntitlementOperationReceipt): Promise; } export interface DirectMessageOperationStore extends OperationStore { checkpointDirectMessage(receipt: DirectMessageOperationReceipt): Promise; finishDirectMessage(receipt: DirectMessageOperationReceipt): Promise; getDirectMessage(kind: DirectMessageOperationKind, operationKeyHash: string): Promise; reserveDirectMessage(receipt: DirectMessageOperationReceipt): Promise; } export declare function isApplicationOperationKind(kind: OperationKind): kind is ApplicationOperationKind; export declare function isDirectMessageOperationKind(kind: OperationKind): kind is DirectMessageOperationKind; export declare function operationKeyHash(operationKey: string): string; export declare function operationReceiptDirectory(activityFile: string): string; export declare class FileOperationStore implements ApplicationOperationStore, ApplicationEntitlementOperationStore, DirectMessageOperationStore { #private; constructor(directory: string); get(kind: GuildOperationKind, hash: string): Promise; reserve(receipt: OperationReceipt): Promise; finish(receipt: OperationReceipt): Promise; getDirectMessage(kind: DirectMessageOperationKind, hash: string): Promise; reserveDirectMessage(receipt: DirectMessageOperationReceipt): Promise; checkpointDirectMessage(receipt: DirectMessageOperationReceipt): Promise; finishDirectMessage(receipt: DirectMessageOperationReceipt): Promise; getApplication(kind: ApplicationOperationKind, hash: string): Promise; reserveApplication(receipt: ApplicationOperationReceipt): Promise; checkpointApplicationEntitlement(receipt: ApplicationEntitlementOperationReceipt): Promise; finishApplication(receipt: ApplicationOperationReceipt): Promise; } export {}; //# sourceMappingURL=operation-store.d.ts.map