import type { ActivityStore } from "./activity-log.js"; import type { DiscordClient } from "./discord-client.js"; import { deletionPreview } from "./normalize.js"; import { type OperationStore } from "./operation-store.js"; import type { ScopePolicy } from "./policy.js"; import type { RequestOptions } from "./types.js"; export type MessageForwardContentIntentStatus = "disabled" | "enabled" | "unknown"; export interface MessageForwardRequest { operationKey: string; sourceChannelId: string; sourceMessageId: string; targetChannelId: string; } export interface NormalizedMessageForwardRequest extends MessageForwardRequest { nonce: string; operationKeyHash: string; } export interface MessageForwardPermissionPlan { administrator: boolean; canReadMessages: true; confidence: "complete"; effectivePermissions: string; permissionSourceChannelId: string; readMessageHistory: true; sendMessages: boolean; unknownPermissionBits: string; viewChannel: true; warnings: string[]; } export interface MessageForwardChannelPlan { guildId: string; id: string; name: string; nsfw: boolean; parentId: string | null; permissionOverwriteCount: number; type: number; typeName: "guild-announcement" | "guild-text"; url: string; } export interface MessageForwardPlan { action: "forward"; applicationId: string; botId: string; createdAt: string; crossGuild: boolean; delivery: { allowedMentions: "none"; enforceNonce: true; nonce: string; notifications: "suppressed"; snapshotCount: 1; }; digest: string; messageContentIntent: "enabled"; operationKeyHash: string; schemaVersion: number; source: { channel: MessageForwardChannelPlan; guild: { id: string; name: string; }; message: ReturnType & { attachmentCount: number; componentCount: number; embedCount: number; flags: number; jumpUrl: string; mentionCount: number; mentionRoleCount: number; stickerCount: number; type: number; }; permission: MessageForwardPermissionPlan; }; status: "planned"; target: { channel: MessageForwardChannelPlan; guild: { id: string; name: string; }; permission: MessageForwardPermissionPlan & { sendMessages: true; }; }; warnings: string[]; } export interface MessageForwardResult { activityId: string; crossGuild: boolean; nonce: string; operationKeyHash: string; planDigest: string; readbackSnapshotMatched: true; responseSnapshotMatched: true; schemaVersion: number; sourceChannelId: string; sourceGuildId: string; sourceMessageId: string; status: "completed"; targetChannelId: string; targetGuildId: string; targetMessageId: string; targetUrl: string; } export interface MessageForwardServiceClient extends Pick { } export interface MessageForwardServiceOptions { activityStore: ActivityStore; client: MessageForwardServiceClient; clock?: () => Date; operationStore: OperationStore; planKey?: Uint8Array; policy: ScopePolicy; randomId?: () => string; } export declare function normalizeMessageForwardRequest(request: MessageForwardRequest): NormalizedMessageForwardRequest; export declare class MessageForwardingService { #private; constructor(options: MessageForwardServiceOptions); plan(applicationId: string, botId: string, messageContentIntent: MessageForwardContentIntentStatus, request: MessageForwardRequest, options?: RequestOptions): Promise; execute(applicationId: string, botId: string, messageContentIntent: MessageForwardContentIntentStatus, request: MessageForwardRequest, expectedDigest: string, options?: RequestOptions): Promise; } //# sourceMappingURL=message-forwarding-service.d.ts.map