> ISPO SDK documentation. [HTML](https://ispo.ai/docs/variables/core.community.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Variable community`Const`

```typescript
community: {
    attachment: {
        issue: (
            input: {
                content: Uint8Array<ArrayBuffer>;
                idempotencyKey: string;
                mediaType:
                    | "image/png"
                    | "image/jpeg"
                    | "image/webp"
                    | "text/plain"
                    | "application/pdf"
                    | "image/gif"
                    | "text/csv"
                    | "text/markdown";
                name: string;
            },
        ) => Promise<
            {
                bytes: number;
                mediaType: | "image/png"
                | "image/jpeg"
                | "image/webp"
                | "text/plain"
                | "application/pdf"
                | "image/gif"
                | "text/csv"
                | "text/markdown";
                name: string;
                receiptId: string;
            },
        >;
    };
    issue: {
        affect: (
            input: { idempotencyKey: string; issueReportId: string },
        ) => Promise<CommunityEntityActionResult>;
        create: (
            input: {
                actualBehavior: string;
                classification: "bug" | "feature" | "question";
                expectedBehavior: string;
                idempotencyKey: string;
                reproductionSteps: string[];
                title: string;
            },
        ) => Promise<CommunityEntityActionResult>;
    };
    member: {
        claim: (
            input: {
                bio?: string;
                displayName: string;
                handle?: string;
                idempotencyKey: string;
            },
        ) => Promise<CommunityMemberClaimWireResult>;
        current: () => Promise<CommunityMemberCurrentWireResult>;
    };
    message: {
        create: (
            input: {
                attachmentReceiptId?: string;
                body: string;
                channelId?: string;
                channelRef?: string;
                idempotencyKey: string;
                mentionHandles?: string[];
                replyToMessageId?: string;
                replyToMessageRef?: string;
            },
        ) => Promise<CommunityMessageCreateResult>;
        delete: (
            input: { idempotencyKey: string; messageRef: string },
        ) => Promise<CommunityMessageDeleteResult>;
        edit: (
            input: { body: string; idempotencyKey: string; messageRef: string },
        ) => Promise<CommunityMessageEditResult>;
    };
    moderation: {
        apply: (
            input: {
                action:
                    | { kind: "message-delete"; targetId: string }
                    | { kind: "channel-lock"; targetId: string }
                    | { kind: "channel-unlock"; targetId: string }
                    | { kind: "member-suspend"; targetHandle: string }
                    | { kind: "member-restore"; targetHandle: string };
                idempotencyKey: string;
                reason: string;
            },
        ) => Promise<CommunityModerationApplyResult>;
        audit: {
            list: (
                input?: {
                    actions?: (
                        | "message-delete"
                        | "channel-lock"
                        | "channel-unlock"
                        | "member-suspend"
                        | "member-restore"
                        | "settings-update"
                        | "channel-create"
                        | "channel-update"
                        | "channel-reorder"
                        | "channel-archive"
                        | "channel-restore"
                        | "moderator-promote"
                        | "moderator-demote"
                        | "issue-redact"
                    )[];
                    cursor?: string;
                    limit?: number;
                },
            ) => Promise<CommunityModerationAuditResult>;
        };
        memberStatus: {
            set: (
                input: {
                    idempotencyKey: string;
                    reason: string;
                    status: "active" | "suspended";
                    target: string;
                },
            ) => Promise<CommunityMemberOperatorActionResult>;
        };
    };
    operator: {
        roster: {
            list: (
                input?: { cursor?: string; limit?: number },
            ) => Promise<CommunityOperatorRosterResult>;
        };
    };
    owner: {
        channel: {
            create: (
                input: {
                    description?: string;
                    idempotencyKey: string;
                    mode?: "issues" | "chat" | "announcements" | "topics";
                    name: string;
                    postingPolicy?: "members" | "moderators" | "read-only";
                    ratePolicy?: {
                        burstLimit?: number;
                        burstWindowSeconds?: number;
                        minimumIntervalSeconds?: number;
                    };
                    slug: string;
                    visibility: "public"
                    | "members"
                    | "moderators";
                },
            ) => Promise<CommunityChannelActionResult>;
            list: (
                input?: { cursor?: string; limit?: number },
            ) => Promise<CommunityChannelListResult>;
            reorder: (
                input: { idempotencyKey: string; targets: string[] },
            ) => Promise<CommunityChannelListResult>;
            state: (
                input: {
                    idempotencyKey: string;
                    state: "archived" | "locked" | "unlocked" | "restored";
                    target: string;
                },
            ) => Promise<CommunityChannelActionResult>;
            update: (
                input: {
                    idempotencyKey: string;
                    patch: {
                        description?: string;
                        mode?: "issues" | "chat" | "announcements" | "topics";
                        name?: string;
                        postingPolicy?: "members" | "moderators" | "read-only";
                        ratePolicy?: {
                            burstLimit?: number;
                            burstWindowSeconds?: number;
                            minimumIntervalSeconds?: number;
                        };
                        visibility?: "public"
                        | "members"
                        | "moderators";
                    };
                    target: string;
                },
            ) => Promise<CommunityChannelActionResult>;
        };
        moderator: {
            set: (
                input: {
                    idempotencyKey: string;
                    reason: string;
                    role: "member" | "moderator";
                    target: string;
                },
            ) => Promise<CommunityMemberOperatorActionResult>;
        };
        settings: {
            update: (
                input: {
                    idempotencyKey: string;
                    patch: {
                        defaultChannelTarget?: string;
                        description?: string;
                        name?: string;
                        onboarding?: {
                            rules?: string[];
                            rulesVersion?: string;
                            suggestedChannelTargets?: string[];
                            welcome?: string;
                        };
                        visibility?: "public"
                        | "private";
                    };
                },
            ) => Promise<CommunitySettingsActionResult>;
        };
    };
    projection: {
        read: () => Promise<
            {
                projection: {
                    channels: {
                        archivedAt?: string;
                        channelRef: string;
                        createdAt: string;
                        description?: string;
                        locked: boolean;
                        mode: "issues"
                        | "chat"
                        | "announcements"
                        | "topics";
                        name: string;
                        position: number;
                        postingPolicy: "members" | "moderators" | "read-only";
                        ratePolicy?: {
                            burstLimit?: (...) | (...);
                            burstWindowSeconds?: (...) | (...);
                            minimumIntervalSeconds?: (...) | (...);
                        };
                        slug: string;
                        version: number;
                        visibility: "public"
                        | "members"
                        | "moderators";
                    }[];
                    messages: {
                        attachmentReceipt?: {
                            bytes: number;
                            mediaType: | (...)
                            | (...)
                            | (...)
                            | (...)
                            | (...)
                            | (...)
                            | (...)
                            | (...);
                            name: string;
                            receiptId: string;
                        };
                        author: { displayName: string; handle: string; profileRef: string };
                        body: string;
                        channelRef: string;
                        createdAt: string;
                        editedAt?: string;
                        mentions: { displayName: string; handle: string; profileRef: string }[];
                        messageRef: string;
                        parent?: {
                            authorDisplayName: string;
                            body: string;
                            createdAt: string;
                            messageRef: string;
                        };
                        reactions: { count: number; emoji: string; reactedByViewer: boolean }[];
                        version: number;
                    }[];
                    operator?: {
                        audit: {
                            action: string;
                            actorLabel: string;
                            createdAt: string;
                            reason: string;
                            target: (...)
                            | (...);
                            targetLabel: string;
                        }[];
                        channels: {
                            archivedAt?: (...)
                            | (...);
                            createdAt: string;
                            description?: (...) | (...);
                            locked: boolean;
                            mode: (...) | (...) | (...) | (...);
                            name: string;
                            position: number;
                            postingPolicy: (...) | (...) | (...);
                            ratePolicy?: (...) | (...);
                            slug: string;
                            target: string;
                            version: number;
                            visibility: (...) | (...) | (...);
                        }[];
                        roster: {
                            bio?: (...)
                            | (...);
                            displayName: string;
                            handle: string;
                            joinedAt: string;
                            role: (...) | (...);
                            status: (...) | (...) | (...);
                            target: string;
                            version: number;
                        }[];
                    };
                };
            },
        >;
        subscribe: (
            onChange: (
                delivery:
                    | {
                        eventCursor: number;
                        kind: "seed";
                        projection: {
                            channels: {
                                archivedAt?: string;
                                channelRef: string;
                                createdAt: string;
                                description?: string;
                                locked: boolean;
                                mode: "issues"
                                | "chat"
                                | "announcements"
                                | "topics";
                                name: string;
                                position: number;
                                postingPolicy: "members" | "moderators" | "read-only";
                                ratePolicy?: {
                                    burstLimit?: ...;
                                    burstWindowSeconds?: ...;
                                    minimumIntervalSeconds?: ...;
                                };
                                slug: string;
                                version: number;
                                visibility: "public"
                                | "members"
                                | "moderators";
                            }[];
                            messages: {
                                attachmentReceipt?: {
                                    bytes: ...;
                                    mediaType: ...;
                                    name: ...;
                                    receiptId: ...;
                                };
                                author: { displayName: string; handle: string; profileRef: string };
                                body: string;
                                channelRef: string;
                                createdAt: string;
                                editedAt?: string;
                                mentions: { displayName: ...; handle: ...; profileRef: ... }[];
                                messageRef: string;
                                parent?: {
                                    authorDisplayName: ...;
                                    body: ...;
                                    createdAt: ...;
                                    messageRef: ...;
                                };
                                reactions: { count: ...; emoji: ...; reactedByViewer: ... }[];
                                version: number;
                            }[];
                            operator?: {
                                audit: {
                                    action: ...;
                                    actorLabel: ...;
                                    createdAt: ...;
                                    reason: ...;
                                    target: ...;
                                    targetLabel: ...;
                                }[];
                                channels: {
                                    archivedAt?: ...;
                                    createdAt: ...;
                                    description?: ...;
                                    locked: ...;
                                    mode: ...;
                                    name: ...;
                                    position: ...;
                                    postingPolicy: ...;
                                    ratePolicy?: ...;
                                    slug: ...;
                                    target: ...;
                                    version: ...;
                                    visibility: ...;
                                }[];
                                roster: {
                                    bio?: ...;
                                    displayName: ...;
                                    handle: ...;
                                    joinedAt: ...;
                                    role: ...;
                                    status: ...;
                                    target: ...;
                                    version: ...;
                                }[];
                            };
                        };
                        recoveryCursor: string;
                    }
                    | {
                        eventCursor: number;
                        kind: "delta";
                        projection: {
                            channels: {
                                archivedAt?: string;
                                channelRef: string;
                                createdAt: string;
                                description?: string;
                                locked: boolean;
                                mode: "issues"
                                | "chat"
                                | "announcements"
                                | "topics";
                                name: string;
                                position: number;
                                postingPolicy: "members" | "moderators" | "read-only";
                                ratePolicy?: {
                                    burstLimit?: ...;
                                    burstWindowSeconds?: ...;
                                    minimumIntervalSeconds?: ...;
                                };
                                slug: string;
                                version: number;
                                visibility: "public"
                                | "members"
                                | "moderators";
                            }[];
                            messages: {
                                attachmentReceipt?: {
                                    bytes: ...;
                                    mediaType: ...;
                                    name: ...;
                                    receiptId: ...;
                                };
                                author: { displayName: string; handle: string; profileRef: string };
                                body: string;
                                channelRef: string;
                                createdAt: string;
                                editedAt?: string;
                                mentions: { displayName: ...; handle: ...; profileRef: ... }[];
                                messageRef: string;
                                parent?: {
                                    authorDisplayName: ...;
                                    body: ...;
                                    createdAt: ...;
                                    messageRef: ...;
                                };
                                reactions: { count: ...; emoji: ...; reactedByViewer: ... }[];
                                version: number;
                            }[];
                            operator?: {
                                audit: {
                                    action: ...;
                                    actorLabel: ...;
                                    createdAt: ...;
                                    reason: ...;
                                    target: ...;
                                    targetLabel: ...;
                                }[];
                                channels: {
                                    archivedAt?: ...;
                                    createdAt: ...;
                                    description?: ...;
                                    locked: ...;
                                    mode: ...;
                                    name: ...;
                                    position: ...;
                                    postingPolicy: ...;
                                    ratePolicy?: ...;
                                    slug: ...;
                                    target: ...;
                                    version: ...;
                                    visibility: ...;
                                }[];
                                roster: {
                                    bio?: ...;
                                    displayName: ...;
                                    handle: ...;
                                    joinedAt: ...;
                                    role: ...;
                                    status: ...;
                                    target: ...;
                                    version: ...;
                                }[];
                            };
                        };
                    }
                    | { kind: "reset"; reason: "recovery-gap"
                    | "authority-changed" },
            ) => void,
        ) => CommunityProjectionSubscription;
    };
    reaction: {
        set: (
            input: {
                active: boolean;
                emoji: string;
                idempotencyKey: string;
                messageRef: string;
            },
        ) => Promise<CommunityReactionSetResult>;
    };
    search: (
        input: { limit: number; query: string },
    ) => Promise<CommunitySearchResult>;
} = ...
```

Types: [CommunityEntityActionResult](../interfaces/core.CommunityEntityActionResult.md), [CommunityMemberClaimWireResult](../types/core.Supporting_types.CommunityMemberClaimWireResult.md), [CommunityMemberCurrentWireResult](../types/core.Supporting_types.CommunityMemberCurrentWireResult.md), [CommunityMessageCreateResult](../interfaces/core.CommunityMessageCreateResult.md), [CommunityMessageDeleteResult](../interfaces/core.CommunityMessageDeleteResult.md), [CommunityMessageEditResult](../interfaces/core.CommunityMessageEditResult.md), [CommunityModerationApplyResult](../interfaces/core.CommunityModerationApplyResult.md), [CommunityModerationAuditResult](../interfaces/core.CommunityModerationAuditResult.md), [CommunityMemberOperatorActionResult](../interfaces/core.CommunityMemberOperatorActionResult.md), [CommunityOperatorRosterResult](../interfaces/core.CommunityOperatorRosterResult.md), [CommunityChannelActionResult](../interfaces/core.CommunityChannelActionResult.md), [CommunityChannelListResult](../interfaces/core.CommunityChannelListResult.md), [CommunitySettingsActionResult](../interfaces/core.CommunitySettingsActionResult.md), [CommunityProjectionSubscription](../interfaces/core.CommunityProjectionSubscription.md), [CommunityReactionSetResult](../interfaces/core.CommunityReactionSetResult.md), [CommunitySearchResult](../interfaces/core.Supporting_types.CommunitySearchResult.md)

Host-stamped Community participation actions. Callers never supply project, namespace, subject, member, or storage selectors; the host resolves those facts from the authenticated project and current membership binding.

#### Type Declaration

*   ##### <a id="attachment"></a>`Readonly`attachment: {  
        issue: (  
            input: {  
                content: Uint8Array<ArrayBuffer\>;  
                idempotencyKey: string;  
                mediaType:  
                    | "image/png"  
                    | "image/jpeg"  
                    | "image/webp"  
                    | "text/plain"  
                    | "application/pdf"  
                    | "image/gif"  
                    | "text/csv"  
                    | "text/markdown";  
                name: string;  
            },  
        ) \=> Promise<  
            {  
                bytes: number;  
                mediaType: | "image/png"  
                | "image/jpeg"  
                | "image/webp"  
                | "text/plain"  
                | "application/pdf"  
                | "image/gif"  
                | "text/csv"  
                | "text/markdown";  
                name: string;  
                receiptId: string;  
            },  
        \>;  
    }
    
*   ##### <a id="issue"></a>`Readonly`issue: {  
        affect: (  
            input: { idempotencyKey: string; issueReportId: string },  
        ) \=> Promise<[CommunityEntityActionResult](../interfaces/core.CommunityEntityActionResult.md)\>;  
        create: (  
            input: {  
                actualBehavior: string;  
                classification: "bug" | "feature" | "question";  
                expectedBehavior: string;  
                idempotencyKey: string;  
                reproductionSteps: string\[\];  
                title: string;  
            },  
        ) \=> Promise<[CommunityEntityActionResult](../interfaces/core.CommunityEntityActionResult.md)\>;  
    }
    
*   ##### <a id="member"></a>`Readonly`member: {  
        claim: (  
            input: {  
                bio?: string;  
                displayName: string;  
                handle?: string;  
                idempotencyKey: string;  
            },  
        ) \=> Promise<[CommunityMemberClaimWireResult](../types/core.Supporting_types.CommunityMemberClaimWireResult.md)\>;  
        current: () \=> Promise<[CommunityMemberCurrentWireResult](../types/core.Supporting_types.CommunityMemberCurrentWireResult.md)\>;  
    }
    
*   ##### <a id="message"></a>`Readonly`message: {  
        create: (  
            input: {  
                attachmentReceiptId?: string;  
                body: string;  
                channelId?: string;  
                channelRef?: string;  
                idempotencyKey: string;  
                mentionHandles?: string\[\];  
                replyToMessageId?: string;  
                replyToMessageRef?: string;  
            },  
        ) \=> Promise<[CommunityMessageCreateResult](../interfaces/core.CommunityMessageCreateResult.md)\>;  
        delete: (  
            input: { idempotencyKey: string; messageRef: string },  
        ) \=> Promise<[CommunityMessageDeleteResult](../interfaces/core.CommunityMessageDeleteResult.md)\>;  
        edit: (  
            input: { body: string; idempotencyKey: string; messageRef: string },  
        ) \=> Promise<[CommunityMessageEditResult](../interfaces/core.CommunityMessageEditResult.md)\>;  
    }
    
*   ##### <a id="moderation"></a>`Readonly`moderation: {  
        apply: (  
            input: {  
                action:  
                    | { kind: "message-delete"; targetId: string }  
                    | { kind: "channel-lock"; targetId: string }  
                    | { kind: "channel-unlock"; targetId: string }  
                    | { kind: "member-suspend"; targetHandle: string }  
                    | { kind: "member-restore"; targetHandle: string };  
                idempotencyKey: string;  
                reason: string;  
            },  
        ) \=> Promise<[CommunityModerationApplyResult](../interfaces/core.CommunityModerationApplyResult.md)\>;  
        audit: {  
            list: (  
                input?: {  
                    actions?: (  
                        | "message-delete"  
                        | "channel-lock"  
                        | "channel-unlock"  
                        | "member-suspend"  
                        | "member-restore"  
                        | "settings-update"  
                        | "channel-create"  
                        | "channel-update"  
                        | "channel-reorder"  
                        | "channel-archive"  
                        | "channel-restore"  
                        | "moderator-promote"  
                        | "moderator-demote"  
                        | "issue-redact"  
                    )\[\];  
                    cursor?: string;  
                    limit?: number;  
                },  
            ) \=> Promise<[CommunityModerationAuditResult](../interfaces/core.CommunityModerationAuditResult.md)\>;  
        };  
        memberStatus: {  
            set: (  
                input: {  
                    idempotencyKey: string;  
                    reason: string;  
                    status: "active" | "suspended";  
                    target: string;  
                },  
            ) \=> Promise<[CommunityMemberOperatorActionResult](../interfaces/core.CommunityMemberOperatorActionResult.md)\>;  
        };  
    }
    
*   ##### <a id="operator"></a>`Readonly`operator: {  
        roster: {  
            list: (  
                input?: { cursor?: string; limit?: number },  
            ) \=> Promise<[CommunityOperatorRosterResult](../interfaces/core.CommunityOperatorRosterResult.md)\>;  
        };  
    }
    
*   ##### <a id="owner"></a>`Readonly`owner: {  
        channel: {  
            create: (  
                input: {  
                    description?: string;  
                    idempotencyKey: string;  
                    mode?: "issues" | "chat" | "announcements" | "topics";  
                    name: string;  
                    postingPolicy?: "members" | "moderators" | "read-only";  
                    ratePolicy?: {  
                        burstLimit?: number;  
                        burstWindowSeconds?: number;  
                        minimumIntervalSeconds?: number;  
                    };  
                    slug: string;  
                    visibility: "public"  
                    | "members"  
                    | "moderators";  
                },  
            ) \=> Promise<[CommunityChannelActionResult](../interfaces/core.CommunityChannelActionResult.md)\>;  
            list: (  
                input?: { cursor?: string; limit?: number },  
            ) \=> Promise<[CommunityChannelListResult](../interfaces/core.CommunityChannelListResult.md)\>;  
            reorder: (  
                input: { idempotencyKey: string; targets: string\[\] },  
            ) \=> Promise<[CommunityChannelListResult](../interfaces/core.CommunityChannelListResult.md)\>;  
            state: (  
                input: {  
                    idempotencyKey: string;  
                    state: "archived" | "locked" | "unlocked" | "restored";  
                    target: string;  
                },  
            ) \=> Promise<[CommunityChannelActionResult](../interfaces/core.CommunityChannelActionResult.md)\>;  
            update: (  
                input: {  
                    idempotencyKey: string;  
                    patch: {  
                        description?: string;  
                        mode?: "issues" | "chat" | "announcements" | "topics";  
                        name?: string;  
                        postingPolicy?: "members" | "moderators" | "read-only";  
                        ratePolicy?: {  
                            burstLimit?: number;  
                            burstWindowSeconds?: number;  
                            minimumIntervalSeconds?: number;  
                        };  
                        visibility?: "public"  
                        | "members"  
                        | "moderators";  
                    };  
                    target: string;  
                },  
            ) \=> Promise<[CommunityChannelActionResult](../interfaces/core.CommunityChannelActionResult.md)\>;  
        };  
        moderator: {  
            set: (  
                input: {  
                    idempotencyKey: string;  
                    reason: string;  
                    role: "member" | "moderator";  
                    target: string;  
                },  
            ) \=> Promise<[CommunityMemberOperatorActionResult](../interfaces/core.CommunityMemberOperatorActionResult.md)\>;  
        };  
        settings: {  
            update: (  
                input: {  
                    idempotencyKey: string;  
                    patch: {  
                        defaultChannelTarget?: string;  
                        description?: string;  
                        name?: string;  
                        onboarding?: {  
                            rules?: string\[\];  
                            rulesVersion?: string;  
                            suggestedChannelTargets?: string\[\];  
                            welcome?: string;  
                        };  
                        visibility?: "public"  
                        | "private";  
                    };  
                },  
            ) \=> Promise<[CommunitySettingsActionResult](../interfaces/core.CommunitySettingsActionResult.md)\>;  
        };  
    }
    
*   ##### <a id="projection"></a>`Readonly`projection: {  
        read: () \=> Promise<  
            {  
                projection: {  
                    channels: {  
                        archivedAt?: string;  
                        channelRef: string;  
                        createdAt: string;  
                        description?: string;  
                        locked: boolean;  
                        mode: "issues"  
                        | "chat"  
                        | "announcements"  
                        | "topics";  
                        name: string;  
                        position: number;  
                        postingPolicy: "members" | "moderators" | "read-only";  
                        ratePolicy?: {  
                            burstLimit?: (...) | (...);  
                            burstWindowSeconds?: (...) | (...);  
                            minimumIntervalSeconds?: (...) | (...);  
                        };  
                        slug: string;  
                        version: number;  
                        visibility: "public"  
                        | "members"  
                        | "moderators";  
                    }\[\];  
                    messages: {  
                        attachmentReceipt?: {  
                            bytes: number;  
                            mediaType: | (...)  
                            | (...)  
                            | (...)  
                            | (...)  
                            | (...)  
                            | (...)  
                            | (...)  
                            | (...);  
                            name: string;  
                            receiptId: string;  
                        };  
                        author: { displayName: string; handle: string; profileRef: string };  
                        body: string;  
                        channelRef: string;  
                        createdAt: string;  
                        editedAt?: string;  
                        mentions: { displayName: string; handle: string; profileRef: string }\[\];  
                        messageRef: string;  
                        parent?: {  
                            authorDisplayName: string;  
                            body: string;  
                            createdAt: string;  
                            messageRef: string;  
                        };  
                        reactions: { count: number; emoji: string; reactedByViewer: boolean }\[\];  
                        version: number;  
                    }\[\];  
                    operator?: {  
                        audit: {  
                            action: string;  
                            actorLabel: string;  
                            createdAt: string;  
                            reason: string;  
                            target: (...)  
                            | (...);  
                            targetLabel: string;  
                        }\[\];  
                        channels: {  
                            archivedAt?: (...)  
                            | (...);  
                            createdAt: string;  
                            description?: (...) | (...);  
                            locked: boolean;  
                            mode: (...) | (...) | (...) | (...);  
                            name: string;  
                            position: number;  
                            postingPolicy: (...) | (...) | (...);  
                            ratePolicy?: (...) | (...);  
                            slug: string;  
                            target: string;  
                            version: number;  
                            visibility: (...) | (...) | (...);  
                        }\[\];  
                        roster: {  
                            bio?: (...)  
                            | (...);  
                            displayName: string;  
                            handle: string;  
                            joinedAt: string;  
                            role: (...) | (...);  
                            status: (...) | (...) | (...);  
                            target: string;  
                            version: number;  
                        }\[\];  
                    };  
                };  
            },  
        \>;  
        subscribe: (  
            onChange: (  
                delivery:  
                    | {  
                        eventCursor: number;  
                        kind: "seed";  
                        projection: {  
                            channels: {  
                                archivedAt?: string;  
                                channelRef: string;  
                                createdAt: string;  
                                description?: string;  
                                locked: boolean;  
                                mode: "issues"  
                                | "chat"  
                                | "announcements"  
                                | "topics";  
                                name: string;  
                                position: number;  
                                postingPolicy: "members" | "moderators" | "read-only";  
                                ratePolicy?: {  
                                    burstLimit?: ...;  
                                    burstWindowSeconds?: ...;  
                                    minimumIntervalSeconds?: ...;  
                                };  
                                slug: string;  
                                version: number;  
                                visibility: "public"  
                                | "members"  
                                | "moderators";  
                            }\[\];  
                            messages: {  
                                attachmentReceipt?: {  
                                    bytes: ...;  
                                    mediaType: ...;  
                                    name: ...;  
                                    receiptId: ...;  
                                };  
                                author: { displayName: string; handle: string; profileRef: string };  
                                body: string;  
                                channelRef: string;  
                                createdAt: string;  
                                editedAt?: string;  
                                mentions: { displayName: ...; handle: ...; profileRef: ... }\[\];  
                                messageRef: string;  
                                parent?: {  
                                    authorDisplayName: ...;  
                                    body: ...;  
                                    createdAt: ...;  
                                    messageRef: ...;  
                                };  
                                reactions: { count: ...; emoji: ...; reactedByViewer: ... }\[\];  
                                version: number;  
                            }\[\];  
                            operator?: {  
                                audit: {  
                                    action: ...;  
                                    actorLabel: ...;  
                                    createdAt: ...;  
                                    reason: ...;  
                                    target: ...;  
                                    targetLabel: ...;  
                                }\[\];  
                                channels: {  
                                    archivedAt?: ...;  
                                    createdAt: ...;  
                                    description?: ...;  
                                    locked: ...;  
                                    mode: ...;  
                                    name: ...;  
                                    position: ...;  
                                    postingPolicy: ...;  
                                    ratePolicy?: ...;  
                                    slug: ...;  
                                    target: ...;  
                                    version: ...;  
                                    visibility: ...;  
                                }\[\];  
                                roster: {  
                                    bio?: ...;  
                                    displayName: ...;  
                                    handle: ...;  
                                    joinedAt: ...;  
                                    role: ...;  
                                    status: ...;  
                                    target: ...;  
                                    version: ...;  
                                }\[\];  
                            };  
                        };  
                        recoveryCursor: string;  
                    }  
                    | {  
                        eventCursor: number;  
                        kind: "delta";  
                        projection: {  
                            channels: {  
                                archivedAt?: string;  
                                channelRef: string;  
                                createdAt: string;  
                                description?: string;  
                                locked: boolean;  
                                mode: "issues"  
                                | "chat"  
                                | "announcements"  
                                | "topics";  
                                name: string;  
                                position: number;  
                                postingPolicy: "members" | "moderators" | "read-only";  
                                ratePolicy?: {  
                                    burstLimit?: ...;  
                                    burstWindowSeconds?: ...;  
                                    minimumIntervalSeconds?: ...;  
                                };  
                                slug: string;  
                                version: number;  
                                visibility: "public"  
                                | "members"  
                                | "moderators";  
                            }\[\];  
                            messages: {  
                                attachmentReceipt?: {  
                                    bytes: ...;  
                                    mediaType: ...;  
                                    name: ...;  
                                    receiptId: ...;  
                                };  
                                author: { displayName: string; handle: string; profileRef: string };  
                                body: string;  
                                channelRef: string;  
                                createdAt: string;  
                                editedAt?: string;  
                                mentions: { displayName: ...; handle: ...; profileRef: ... }\[\];  
                                messageRef: string;  
                                parent?: {  
                                    authorDisplayName: ...;  
                                    body: ...;  
                                    createdAt: ...;  
                                    messageRef: ...;  
                                };  
                                reactions: { count: ...; emoji: ...; reactedByViewer: ... }\[\];  
                                version: number;  
                            }\[\];  
                            operator?: {  
                                audit: {  
                                    action: ...;  
                                    actorLabel: ...;  
                                    createdAt: ...;  
                                    reason: ...;  
                                    target: ...;  
                                    targetLabel: ...;  
                                }\[\];  
                                channels: {  
                                    archivedAt?: ...;  
                                    createdAt: ...;  
                                    description?: ...;  
                                    locked: ...;  
                                    mode: ...;  
                                    name: ...;  
                                    position: ...;  
                                    postingPolicy: ...;  
                                    ratePolicy?: ...;  
                                    slug: ...;  
                                    target: ...;  
                                    version: ...;  
                                    visibility: ...;  
                                }\[\];  
                                roster: {  
                                    bio?: ...;  
                                    displayName: ...;  
                                    handle: ...;  
                                    joinedAt: ...;  
                                    role: ...;  
                                    status: ...;  
                                    target: ...;  
                                    version: ...;  
                                }\[\];  
                            };  
                        };  
                    }  
                    | { kind: "reset"; reason: "recovery-gap"  
                    | "authority-changed" },  
            ) \=> void,  
        ) \=> [CommunityProjectionSubscription](../interfaces/core.CommunityProjectionSubscription.md);  
    }
    
*   ##### <a id="reaction"></a>`Readonly`reaction: {  
        set: (  
            input: {  
                active: boolean;  
                emoji: string;  
                idempotencyKey: string;  
                messageRef: string;  
            },  
        ) \=> Promise<[CommunityReactionSetResult](../interfaces/core.CommunityReactionSetResult.md)\>;  
    }
    
*   ##### <a id="search"></a>`Readonly`search: (input: { limit: number; query: string }) \=> Promise<[CommunitySearchResult](../interfaces/core.Supporting_types.CommunitySearchResult.md)\>
