import { type OperationKind, type OperationReceiptStatus, type OperationStore } from "./operation-store.js"; export declare const WRITE_COORDINATION_RESOURCE_KINDS: readonly ["channel", "integration", "member", "message", "role", "user", "webhook"]; export declare const WRITE_COORDINATION_GUILD_COLLECTIONS: readonly ["application-commands", "automod", "channels", "community", "emojis", "guild-settings", "incident-actions", "invites", "integrations", "members", "onboarding", "roles", "scheduled-events", "soundboard", "stickers", "templates", "webhooks", "welcome-screen", "widget-settings"]; export declare const WRITE_COORDINATION_APPLICATION_COLLECTIONS: readonly ["bot-profile", "emojis", "entitlements", "global-application-commands", "privileged-intents", "role-connection-metadata"]; export type WriteCoordinationResourceKind = typeof WRITE_COORDINATION_RESOURCE_KINDS[number]; export type WriteCoordinationGuildCollection = typeof WRITE_COORDINATION_GUILD_COLLECTIONS[number]; export type WriteCoordinationApplicationCollection = typeof WRITE_COORDINATION_APPLICATION_COLLECTIONS[number]; export type WriteCoordinationTarget = { applicationId: string; collection: WriteCoordinationApplicationCollection; kind: "application-collection"; } | { id: string; kind: WriteCoordinationResourceKind; } | { collection: WriteCoordinationGuildCollection; guildId: string; kind: "guild-collection"; }; export interface WriteCoordinationIntent { kind: OperationKind; operationKeyHash: string; planDigest: string; targets: readonly WriteCoordinationTarget[]; } export interface WriteCoordinationRunOptions { releasePendingOnVerifiedPause?: boolean; } export interface WriteCoordinator { run(intent: WriteCoordinationIntent, operation: () => Promise, options?: WriteCoordinationRunOptions): Promise; } export type WriteCoordinationOwnerState = "alive" | "dead" | "unknown"; export type WriteCoordinationReceiptState = OperationReceiptStatus | "different-plan" | "missing" | "unreadable"; export type WriteCoordinationClaimState = "active" | "auto-reclaimable" | "review-required"; export interface WriteCoordinationClaimStatus { claimId: string; createdAt: string; kind: OperationKind; operationKeyHash: string; ownerPid: number; ownerState: WriteCoordinationOwnerState; planDigest: string; publishedTargetCount: number; receiptState: WriteCoordinationReceiptState; schemaVersion: 1; state: WriteCoordinationClaimState; targets: WriteCoordinationTarget[]; } export interface WriteCoordinationList { claims: WriteCoordinationClaimStatus[]; schemaVersion: 1; status: "ok"; } export interface WriteCoordinationResolution { claimId: string; releasedTargetCount: number; schemaVersion: 1; status: "already-resolved" | "resolved"; } export interface FileWriteCoordinatorOptions { clock?: () => Date; ownerPid?: number; processAlive?: (pid: number) => boolean; randomId?: () => string; } export declare function writeResourceTarget(kind: WriteCoordinationResourceKind, id: string): WriteCoordinationTarget; export declare function writeGuildCollectionTarget(collection: WriteCoordinationGuildCollection, guildId: string): WriteCoordinationTarget; export declare function writeGuildDepartureTargets(guildId: string): WriteCoordinationTarget[]; export declare function writeApplicationCollectionTarget(collection: WriteCoordinationApplicationCollection, applicationId: string): WriteCoordinationTarget; export declare function writeCoordinationTargetHash(target: WriteCoordinationTarget): string; export declare function writeCoordinationDirectory(activityFile: string): string; export declare class FileWriteCoordinator implements WriteCoordinator { #private; constructor(directory: string, operationStore: OperationStore, options?: FileWriteCoordinatorOptions); list(): Promise; resolve(claimIdValue: string, confirmationValue: string): Promise; run(intentValue: WriteCoordinationIntent, operation: () => Promise, options?: WriteCoordinationRunOptions): Promise; } //# sourceMappingURL=write-coordination.d.ts.map