declare module "wix-members-followers-backend.v2" {
  const __debug: {
      verboseLogging: {
          on: () => boolean;
          off: () => boolean;
      };
  };
  interface Follower {
      /** Member ID of the member who performed the action. */
      memberId?: string;
      /** Member ID of the member being followed or unfollowed. */
      affectedMemberId?: string;
  }
  interface FollowMemberRequest {
      /** Member ID. */
      memberId: string;
  }
  interface FollowMemberResponse {
  }
  interface MemberFollowed {
      /** Member who is following the other member. */
      memberConnection?: Follower;
  }
  interface UnfollowMemberRequest {
      /** Member ID. */
      memberId: string;
  }
  interface UnfollowMemberResponse {
  }
  interface MemberUnfollowed {
      /** Member who is unfollowing the other member. */
      memberConnection?: Follower;
  }
  interface ListMyMemberFollowingRequest {
      /**
       * Pagination options. For more information, see
       * [Pagination](https://dev.wix.com/api/rest/getting-started/pagination).
       */
      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 ListMyMemberFollowingResponse {
      /** List of site members who are followed by the current member. */
      memberIds?: string[];
      /** Metadata for the paginated results. */
      pagingMetadata?: PagingMetadata;
  }
  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;
      /**
       * Indicates if there are more results after the current page.
       * If `true`, another page of results can be retrieved.
       * If `false`, this is the last page.
       * @internal
       */
      hasNext?: boolean | null;
  }
  interface ListMemberFollowingRequest {
      /** Member ID. */
      memberId: string;
      /**
       * Pagination options. For more information, see
       * [Pagination](https://dev.wix.com/api/rest/getting-started/pagination).
       */
      paging?: Paging;
  }
  interface ListMemberFollowingResponse {
      /** List of site members who are followed by the requested member. */
      memberIds?: string[];
      /** Metadata for the paginated results. */
      pagingMetadata?: PagingMetadata;
  }
  interface ListMyMemberFollowersRequest {
      /** Metadata for the paginated results. */
      paging?: Paging;
  }
  interface ListMyMemberFollowersResponse {
      /** List of members who are following the current member. */
      memberIds?: string[];
      /** Metadata for the paginated results. */
      pagingMetadata?: PagingMetadata;
  }
  interface ListMemberFollowersRequest {
      /** Member ID. */
      memberId: string;
      /** Metadata for the paginated results. */
      paging?: Paging;
  }
  interface ListMemberFollowersResponse {
      /** List of members who are following the request member. */
      memberIds?: string[];
      /** Metadata for the paginated results. */
      pagingMetadata?: PagingMetadata;
  }
  interface ListMyMemberConnectionsRequest {
      /**
       * List of member IDs whose connections to the current member
       * will be retrieved.
       */
      connectedMemberIds: string[];
  }
  interface ListMyMemberConnectionsResponse {
      /** List of site members whose connections to the current member were retrieved. */
      connectedMembers?: ConnectedMembers[];
  }
  interface ConnectedMembers {
      /** Site member ID. */
      connectedMemberId?: string;
      /** Indicates if the listed member is followed by the requested member. */
      followedByMember?: boolean;
      /** Indicates if the listed member is following the requested member. */
      followingMember?: boolean;
  }
  interface ListMemberConnectionsRequest {
      /**
       * List of member IDs whose connections to the requested member
       * will be retrieved.
       * For multiple connections, format as
       * `?connectedMemberIds=member-1-id&connectedMemberIds=member-2-id`.
       */
      connectedMemberIds: string[];
      /** ID of the requested member. */
      memberId: string;
  }
  interface ListMemberConnectionsResponse {
      /** List of site members whose connections to the requested member were retrieved. */
      connectedMembers?: ConnectedMembers[];
  }
  /**
   * Sets the current member to follow another member.
   *
   * Members are typically associated with a contact, each having a distinct member and contact ID. When passing the ID as a parameter, avoid presuming the IDs are identical since they represent separate entities.
   * @param memberId - Member ID.
   * @internal
   * @documentationMaturity preview
   * @requiredField memberId
   */
  function followMember(memberId: string): Promise<void>;
  /** @param memberId - Member ID.
   * @internal
   * @documentationMaturity preview
   * @requiredField memberId
   */
  function unfollowMember(memberId: string): Promise<void>;
  /**
   * Returns IDs of members followed by the member making the call
   * @internal
   * @documentationMaturity preview
   */
  function listMyMemberFollowing(options?: ListMyMemberFollowingOptions): Promise<ListMyMemberFollowingResponse>;
  interface ListMyMemberFollowingOptions {
      /**
       * Pagination options. For more information, see
       * [Pagination](https://dev.wix.com/api/rest/getting-started/pagination).
       */
      paging?: Paging;
  }
  /** @param memberId - Member ID.
   * @public
   * @documentationMaturity preview
   * @requiredField memberId
   */
  function listMemberFollowing(memberId: string, options?: ListMemberFollowingOptions): Promise<ListMemberFollowingResponse>;
  interface ListMemberFollowingOptions {
      /**
       * Pagination options. For more information, see
       * [Pagination](https://dev.wix.com/api/rest/getting-started/pagination).
       */
      paging?: Paging;
  }
  /**
   * Returns IDs of members who follow the member making the call
   * @internal
   * @documentationMaturity preview
   */
  function listMyMemberFollowers(options?: ListMyMemberFollowersOptions): Promise<ListMyMemberFollowersResponse>;
  interface ListMyMemberFollowersOptions {
      /** Metadata for the paginated results. */
      paging?: Paging;
  }
  /**
   * Lists members who follow the requested member.
   * @param memberId - Member ID.
   * @public
   * @documentationMaturity preview
   * @requiredField memberId
   */
  function listMemberFollowers(memberId: string, options?: ListMemberFollowersOptions): Promise<ListMemberFollowersResponse>;
  interface ListMemberFollowersOptions {
      /** Metadata for the paginated results. */
      paging?: Paging;
  }
  /**
   * Returns information if provided site members are followers or are followed by the member making the call.
   * @param connectedMemberIds - List of member IDs whose connections to the current member
   * will be retrieved.
   * @internal
   * @documentationMaturity preview
   * @requiredField connectedMemberIds
   */
  function listMyMemberConnections(connectedMemberIds: string[]): Promise<ListMyMemberConnectionsResponse>;
  /**
   * Lists a member's follower or following connections to the other members specified in the request.
   * > Note: If no other members' IDs (`connectedMemberIds`) are passed, the call will return successful, but with no data.
   * @param memberId - ID of the requested member.
   * @param connectedMemberIds - List of member IDs whose connections to the requested member
   * will be retrieved.
   * For multiple connections, format as
   * `?connectedMemberIds=member-1-id&connectedMemberIds=member-2-id`.
   * @public
   * @documentationMaturity preview
   * @requiredField connectedMemberIds
   * @requiredField memberId
   */
  function listMemberConnections(memberId: string, connectedMemberIds: string[]): Promise<ListMemberConnectionsResponse>;
  
  export { ConnectedMembers, FollowMemberRequest, FollowMemberResponse, Follower, ListMemberConnectionsRequest, ListMemberConnectionsResponse, ListMemberFollowersOptions, ListMemberFollowersRequest, ListMemberFollowersResponse, ListMemberFollowingOptions, ListMemberFollowingRequest, ListMemberFollowingResponse, ListMyMemberConnectionsRequest, ListMyMemberConnectionsResponse, ListMyMemberFollowersOptions, ListMyMemberFollowersRequest, ListMyMemberFollowersResponse, ListMyMemberFollowingOptions, ListMyMemberFollowingRequest, ListMyMemberFollowingResponse, MemberFollowed, MemberUnfollowed, Paging, PagingMetadata, UnfollowMemberRequest, UnfollowMemberResponse, __debug, followMember, listMemberConnections, listMemberFollowers, listMemberFollowing, listMyMemberConnections, listMyMemberFollowers, listMyMemberFollowing, unfollowMember };
}
