import { NonNullablePaths } from '@wix/sdk-types'; /** * Question asked to members when joining a group. * Only group admins can create or update membership questions * and can set whether it is required to answer membership questions. */ interface MembershipQuestion { /** * Question ID. * @format GUID * @readonly */ _id?: string | null; /** Whether a member must answer this question when joining the group. */ required?: boolean; /** * Question text. * @minLength 1 * @maxLength 300 */ text?: string; } interface ListMembershipQuestionsRequest { /** * Group ID. * @format GUID */ groupId: string; } interface ListMembershipQuestionsResponse { /** Retrieved membership questions. */ questions?: MembershipQuestion[]; } interface CreateOrReplaceAllMembershipQuestionsRequest { /** * Group ID. * @format GUID */ groupId: string; /** * New membership questions. * @maxSize 50 */ questions?: MembershipQuestion[]; } interface CreateOrReplaceAllMembershipQuestionsResponse { /** Membership questions. */ questions?: MembershipQuestion[]; } interface ListAnswersRequest { /** * Group ID. * @format GUID */ groupId: string; /** * Member IDs. If no member ID is provided, answers for all members will be returned. See the Members API for more details. * @format GUID * @maxSize 500 */ memberIds?: string[]; paging?: Paging; } interface Paging { /** Number of items to load. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface ListAnswersResponse { /** Answers to the membership questions, grouped by member. */ memberAnswers?: MemberMembershipQuestionAnswers[]; /** Membership questions by question ID. Includes only questions that have been answered by the specified members. */ questions?: Record; metadata?: PagingMetadata; } interface MemberMembershipQuestionAnswers { /** * Member ID. See the Members API for more details. * @format GUID */ memberId?: string; /** Answers to the membership question. */ answers?: MembershipQuestionAnswer[]; } /** Answer to a membership question. */ interface MembershipQuestionAnswer { /** * Question ID. * @format GUID */ _id?: string; /** * Answer text. * @maxLength 300 */ text?: string | null; } interface PagingMetadata { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ offset?: number | null; /** Total number of items that match the query. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; } interface ListAnswerCountsRequest { /** * @format GUID * @maxSize 500 */ memberIds?: string[]; } interface ListAnswerCountsResponse { memberAnswerCounts?: MemberAnswerCount[]; } interface MemberAnswerCount { /** @format GUID */ memberId?: string; /** @format GUID */ groupId?: string; count?: number; } /** * Retrieves the membership questions for a group. * * >**Note:** * >This endpoint requires [visitor or member authentication](https://dev.wix.com/docs/rest/articles/getting-started/access-types-and-permissions). * @param groupId - Group ID. * @public * @requiredField groupId * @fqn wix.social.groups.api.v2.MembershipQuestionsService.ListMembershipQuestions */ declare function listMembershipQuestions(groupId: string): Promise>; /** * Creates membership questions if none have been set up. Otherwise, replaces all existing questions. * * Providing an empty array means that members won't have to answer any question when joining the group. * Only admins can create or replace membership questions. * * >**Note:** * >This endpoint requires [visitor or member authentication](https://dev.wix.com/docs/rest/articles/getting-started/access-types-and-permissions). * @param groupId - Group ID. * @public * @requiredField groupId * @fqn wix.social.groups.api.v2.MembershipQuestionsService.CreateOrReplaceAllMembershipQuestions */ declare function createOrReplaceAllMembershipQuestions(groupId: string, options?: CreateOrReplaceAllMembershipQuestionsOptions): Promise>; interface CreateOrReplaceAllMembershipQuestionsOptions { /** * New membership questions. * @maxSize 50 */ questions?: MembershipQuestion[]; } /** * Retrieves the answers to the membership questions, given the provided filters. * * >**Note:** * >This endpoint requires [visitor or member authentication](https://dev.wix.com/docs/rest/articles/getting-started/access-types-and-permissions). * @param groupId - Group ID. * @public * @requiredField groupId * @fqn wix.social.groups.api.v2.MembershipQuestionsService.ListAnswers */ declare function listAnswers(groupId: string, options?: ListAnswersOptions): Promise>; interface ListAnswersOptions { /** * Member IDs. If no member ID is provided, answers for all members will be returned. See the Members API for more details. * @format GUID * @maxSize 500 */ memberIds?: string[]; paging?: Paging; } export { type CreateOrReplaceAllMembershipQuestionsOptions, type CreateOrReplaceAllMembershipQuestionsRequest, type CreateOrReplaceAllMembershipQuestionsResponse, type ListAnswerCountsRequest, type ListAnswerCountsResponse, type ListAnswersOptions, type ListAnswersRequest, type ListAnswersResponse, type ListMembershipQuestionsRequest, type ListMembershipQuestionsResponse, type MemberAnswerCount, type MemberMembershipQuestionAnswers, type MembershipQuestion, type MembershipQuestionAnswer, type Paging, type PagingMetadata, createOrReplaceAllMembershipQuestions, listAnswers, listMembershipQuestions };