import { messages } from "../../../../errors.js";
import type { CommentModerationPubsubMessagePublication } from "../../../../publications/comment-moderation/types.js";
import type { CommunityRoleNameUnion, Flair } from "../../../../community/types.js";
import type { DecryptedChallengeRequestMessageType, PublicationFromDecryptedChallengeRequest, PublicationWithCommunityAuthorFromDecryptedChallengeRequest } from "../../../../pubsub-messages/types.js";
import type { LocalCommunity } from "../local-community.js";
export declare function isFlairInAllowedList(flair: Flair, allowedFlairs: Flair[]): boolean;
export declare function isPublicationAuthorPartOfRoles(community: LocalCommunity, publication: Pick<CommentModerationPubsubMessagePublication, "author" | "signature">, rolesToCheckAgainst: CommunityRoleNameUnion[]): Promise<boolean>;
export declare function respondWithErrorIfSignatureOfPublicationIsInvalid(community: LocalCommunity, request: DecryptedChallengeRequestMessageType): Promise<void>;
export declare function checkPublicationValidity(community: LocalCommunity, request: DecryptedChallengeRequestMessageType, publication: PublicationFromDecryptedChallengeRequest, authorCommunity?: PublicationWithCommunityAuthorFromDecryptedChallengeRequest["author"]["community"]): Promise<messages | undefined>;
