import type { ActivityStore } from "./activity-log.js"; import type { DiscordClient } from "./discord-client.js"; import { type OperationStore } from "./operation-store.js"; import type { ScopePolicy } from "./policy.js"; import { deletionPreview, normalizeChannel } from "./normalize.js"; import type { RequestOptions } from "./types.js"; export type MessageContentIntentStatus = "disabled" | "enabled" | "unknown"; export interface AnnouncementCrosspostRequest { channelId: string; messageId: string; operationKey: string; } export interface NormalizedAnnouncementCrosspostRequest extends AnnouncementCrosspostRequest { operationKeyHash: string; } export interface AnnouncementCrosspostPlan { action: "crosspost" | "none"; applicationId: string; botId: string; channel: ReturnType; createdAt: string; digest: string; guild: { id: string; name: string; }; message: ReturnType & { crossposted: boolean; flags: number; jumpUrl: string; type: number; }; messageContentIntent: "enabled"; operationKeyHash: string; permission: { administrator: boolean; authorship: "connector-bot" | "other"; canReadMessages: true; confidence: "complete"; effectivePermissions: string; manageMessages: boolean; permissionSourceChannelId: string; readMessageHistory: boolean; sendMessages: boolean; viewChannel: boolean; }; schemaVersion: number; status: "already-crossposted" | "planned"; target: { crossposted: true; }; warnings: string[]; } export interface AnnouncementCrosspostResult { activityId: string | null; channelId: string; guildId: string; messageId: string; observedCrossposted: boolean; operationKeyHash: string; planDigest: string; readbackSnapshotMatched: boolean; responseSnapshotMatched: boolean; schemaVersion: number; status: "already-crossposted" | "completed"; url: string; } export interface AnnouncementCrosspostServiceClient extends Pick { } export interface AnnouncementCrosspostServiceOptions { activityStore: ActivityStore; client: AnnouncementCrosspostServiceClient; clock?: () => Date; operationStore: OperationStore; planKey?: Uint8Array; policy: ScopePolicy; randomId?: () => string; } export declare function normalizeAnnouncementCrosspostRequest(request: AnnouncementCrosspostRequest): NormalizedAnnouncementCrosspostRequest; export declare class AnnouncementCrosspostService { #private; constructor(options: AnnouncementCrosspostServiceOptions); plan(applicationId: string, botId: string, messageContentIntent: MessageContentIntentStatus, request: AnnouncementCrosspostRequest, options?: RequestOptions): Promise; execute(applicationId: string, botId: string, messageContentIntent: MessageContentIntentStatus, request: AnnouncementCrosspostRequest, expectedDigest: string, options?: RequestOptions): Promise; } //# sourceMappingURL=announcement-crosspost-service.d.ts.map