import { NonNullablePaths } from '@wix/sdk-types'; interface Follower { /** * Member ID of the member who performed the action. * @format GUID */ memberId?: string; /** * Member ID of the member being followed or unfollowed. * @format GUID */ affectedMemberId?: string; } interface InvalidateCache extends InvalidateCacheGetByOneOf { /** * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! * @format GUID */ metaSiteId?: string; /** * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! * @format GUID */ siteId?: string; /** Invalidate by App */ app?: App; /** Invalidate by page id */ page?: Page; /** Invalidate by URI path */ uri?: URI; /** Invalidate by file (for media files such as PDFs) */ file?: File; /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */ customTag?: CustomTag; /** * tell us why you're invalidating the cache. You don't need to add your app name * @maxLength 256 */ reason?: string | null; /** Is local DS */ localDc?: boolean; hardPurge?: boolean; } /** @oneof */ interface InvalidateCacheGetByOneOf { /** * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache! * @format GUID */ metaSiteId?: string; /** * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache! * @format GUID */ siteId?: string; /** Invalidate by App */ app?: App; /** Invalidate by page id */ page?: Page; /** Invalidate by URI path */ uri?: URI; /** Invalidate by file (for media files such as PDFs) */ file?: File; /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */ customTag?: CustomTag; } interface App { /** * The AppDefId * @minLength 1 */ appDefId?: string; /** * The instance Id * @format GUID */ instanceId?: string; } interface Page { /** * the msid the page is on * @format GUID */ metaSiteId?: string; /** * Invalidate by Page ID * @minLength 1 */ pageId?: string; } interface URI { /** * the msid the URI is on * @format GUID */ metaSiteId?: string; /** * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes * @minLength 1 */ uriPath?: string; } interface File { /** * the msid the file is related to * @format GUID */ metaSiteId?: string; /** * Invalidate by filename (for media files such as PDFs) * @minLength 1 * @maxLength 256 */ fileName?: string; } interface CustomTag { /** * the msid the tag is related to * @format GUID */ metaSiteId?: string; /** * Tag to invalidate by * @minLength 1 * @maxLength 256 */ tag?: string; } interface FollowMemberRequest { /** * ID of the member to follow. * @format GUID */ memberId: string; } interface FollowMemberResponse { } interface MemberFollowed { /** Member who is following the other member. */ memberConnection?: Follower; } interface UnfollowMemberRequest { /** * ID of the member to unfollow. * @format GUID */ memberId: string; } interface UnfollowMemberResponse { } interface MemberUnfollowed { /** Member who is unfollowing the other member. */ memberConnection?: Follower; } interface ListMyMemberFollowingRequest { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface CursorPaging { /** * Number of items to return. See [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). * @min 1 * @max 100 */ limit?: number | null; /** Cursor returned from last query response. */ cursor?: string | null; } interface ListMyMemberFollowingResponse { /** * Retrieved list of members followed by the current member. * @format GUID */ memberIds?: string[]; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } interface PagingMetadataV2 { /** Number of items starting from given cursor. */ count?: number | null; /** Cursors to navigate through the result pages using `next` and `prev`. */ cursors?: Cursors; } interface Cursors { /** * Cursor string pointing to the next page in the list of results. * @maxLength 16000 */ next?: string | null; /** * Cursor pointing to the previous page in the list of results. * @maxLength 16000 */ prev?: string | null; } interface ListMemberFollowingRequest { /** * ID of the member whose followers to list. * @format GUID */ memberId: string; /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListMemberFollowingResponse { /** * Retrieved list of members who are followed by the given member. * @format GUID */ memberIds?: string[]; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } interface ListMyMemberFollowersRequest { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListMyMemberFollowersResponse { /** * Retrieved list of members who are following the current member. * @format GUID */ memberIds?: string[]; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } interface ListMemberFollowersRequest { /** * ID of the member whose followed members to list. * @format GUID */ memberId: string; /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListMemberFollowersResponse { /** * Retrieved list of members who are following the given member. * @format GUID */ memberIds?: string[]; /** Details on the paged set of results returned. */ pagingMetadata?: PagingMetadataV2; } interface QueryMyMemberConnectionsRequest { /** * List of member IDs whose connections to the current member will be retrieved. * @format GUID * @maxSize 100 */ connectedMemberIds: string[]; } interface QueryMyMemberConnectionsResponse { /** Retrieved list of members whose connections to the current member were retrieved. */ connectedMembers?: ConnectedMembers[]; } interface ConnectedMembers { /** * Site member ID. * @format GUID */ connectedMemberId?: string; /** Whether the listed member is followed by the given member. */ followedByMember?: boolean; /** Whether the listed member follows the given member. */ followingMember?: boolean; } interface QueryMemberConnectionsRequest { /** * List of member IDs whose connections to the given member will be retrieved. * @format GUID * @maxSize 100 */ connectedMemberIds: string[]; /** * Member ID. * @format GUID */ memberId: string; } interface QueryMemberConnectionsResponse { /** Retrieved list of members whose connections to the given member were retrieved. */ connectedMembers?: ConnectedMembers[]; } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entity?: string; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntity?: string; } interface EntityDeletedEvent { /** Entity that was deleted. */ deletedEntity?: string | null; } interface ActionEvent { body?: string; } interface Empty { } interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface BaseEventMetadata { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; } interface EventMetadata extends BaseEventMetadata { /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at 16:00 and then again at 16:01, the second update will always have a higher sequence number. * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it. */ entityEventSequence?: string | null; } interface FollowMemberFollowedEnvelope { data: MemberFollowed; metadata: EventMetadata; } /** * Triggered when a member follows another member. * @permissionScope Manage Stores * @permissionScopeId SCOPE.STORES.MANAGE-STORES * @permissionScope Manage Members * @permissionScopeId SCOPE.DC-MEMBERS.MANAGE-MEMBERS * @permissionScope Manage Blog * @permissionScopeId SCOPE.BLOG.MANAGE-BLOG * @permissionScope Read Member Connections * @permissionScopeId SCOPE.DC-MEMBERS.READ-FOLLOWERS * @permissionId MEMBERS.FOLLOW_READ * @webhook * @eventType wix.members.v3.follow_member_followed * @serviceIdentifier com.wixpress.members.follow.v3.MemberFollowers * @slug member_followed */ declare function onFollowMemberFollowed(handler: (event: FollowMemberFollowedEnvelope) => void | Promise): void; interface FollowMemberUnfollowedEnvelope { data: MemberUnfollowed; metadata: EventMetadata; } /** * Triggered when a member unfollows another member. * @permissionScope Manage Stores * @permissionScopeId SCOPE.STORES.MANAGE-STORES * @permissionScope Manage Members * @permissionScopeId SCOPE.DC-MEMBERS.MANAGE-MEMBERS * @permissionScope Manage Blog * @permissionScopeId SCOPE.BLOG.MANAGE-BLOG * @permissionScope Read Member Connections * @permissionScopeId SCOPE.DC-MEMBERS.READ-FOLLOWERS * @permissionId MEMBERS.FOLLOW_READ * @webhook * @eventType wix.members.v3.follow_member_unfollowed * @serviceIdentifier com.wixpress.members.follow.v3.MemberFollowers * @slug member_unfollowed */ declare function onFollowMemberUnfollowed(handler: (event: FollowMemberUnfollowedEnvelope) => void | Promise): void; /** * Sets the current member to follow another, specified member. * @param memberId - ID of the member to follow. * @public * @requiredField memberId * @permissionId MEMBERS.MEMBER_FOLLOW * @applicableIdentity MEMBER * @fqn com.wixpress.members.follow.v3.MemberFollowers.FollowMember */ declare function followMember(memberId: string): Promise; /** * Sets the current member to unfollow another, specified member. * @param memberId - ID of the member to unfollow. * @public * @requiredField memberId * @permissionId MEMBERS.MEMBER_FOLLOW * @applicableIdentity MEMBER * @fqn com.wixpress.members.follow.v3.MemberFollowers.UnfollowMember */ declare function unfollowMember(memberId: string): Promise; /** * Retrieves a list of members who are followed by the current member. * @public * @permissionId MEMBERS.FOLLOW_READ_MY * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.ListMyMemberFollowing */ declare function listCurrentMemberFollowing(options?: ListCurrentMemberFollowingOptions): Promise; interface ListCurrentMemberFollowingOptions { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListCurrentMemberFollowingResult { memberIds: string[]; metadata: PagingMetadataV2; } /** * Retrieves a list of members who are followed by the given member. * @param memberId - ID of the member whose followers to list. * @public * @requiredField memberId * @permissionId MEMBERS.FOLLOW_READ * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.ListMemberFollowing */ declare function listMemberFollowing(memberId: string, options?: ListMemberFollowingOptions): Promise; interface ListMemberFollowingOptions { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListMemberFollowingResult { memberIds: string[]; metadata: PagingMetadataV2; } /** * Retrieves a list of members who are following the current member. * @public * @permissionId MEMBERS.FOLLOW_READ_MY * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.ListMyMemberFollowers */ declare function listCurrentMemberFollowers(options?: ListCurrentMemberFollowersOptions): Promise; interface ListCurrentMemberFollowersOptions { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListCurrentMemberFollowersResult { memberIds: string[]; metadata: PagingMetadataV2; } /** * Retrieves a list of members who are following the given member. * @param memberId - ID of the member whose followed members to list. * @public * @requiredField memberId * @permissionId MEMBERS.FOLLOW_READ * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.ListMemberFollowers */ declare function listMemberFollowers(memberId: string, options?: ListMemberFollowersOptions): Promise; interface ListMemberFollowersOptions { /** * Pagination options. For more information, see * [Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging). */ paging?: CursorPaging; } interface ListMemberFollowersResult { memberIds: string[]; metadata: PagingMetadataV2; } /** * Retrieves a list of members and their connections to the current member. * @param connectedMemberIds - List of member IDs whose connections to the current member will be retrieved. * @public * @requiredField connectedMemberIds * @permissionId MEMBERS.FOLLOW_READ_MY * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.QueryMyMemberConnections */ declare function queryCurrentMemberConnections(connectedMemberIds: string[]): Promise>; /** * Retrieves a list of members and their connections to the given member. * > **Note:** If an empty array is passed as `connectedMemberIds`, the call will succeed, but it will not return any data. * @param memberId - Member ID. * @param connectedMemberIds - List of member IDs whose connections to the given member will be retrieved. * @public * @requiredField connectedMemberIds * @requiredField memberId * @permissionId MEMBERS.FOLLOW_READ * @applicableIdentity APP * @applicableIdentity VISITOR * @fqn com.wixpress.members.follow.v3.MemberFollowers.QueryMemberConnections */ declare function queryMemberConnections(memberId: string, connectedMemberIds: string[]): Promise>; export { type ActionEvent, type App, type BaseEventMetadata, type ConnectedMembers, type CursorPaging, type Cursors, type CustomTag, type DomainEvent, type DomainEventBodyOneOf, type Empty, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type EventMetadata, type File, type FollowMemberFollowedEnvelope, type FollowMemberRequest, type FollowMemberResponse, type FollowMemberUnfollowedEnvelope, type Follower, type IdentificationData, type IdentificationDataIdOneOf, type InvalidateCache, type InvalidateCacheGetByOneOf, type ListCurrentMemberFollowersOptions, type ListCurrentMemberFollowersResult, type ListCurrentMemberFollowingOptions, type ListCurrentMemberFollowingResult, type ListMemberFollowersOptions, type ListMemberFollowersRequest, type ListMemberFollowersResponse, type ListMemberFollowersResult, type ListMemberFollowingOptions, type ListMemberFollowingRequest, type ListMemberFollowingResponse, type ListMemberFollowingResult, type ListMyMemberFollowersRequest, type ListMyMemberFollowersResponse, type ListMyMemberFollowingRequest, type ListMyMemberFollowingResponse, type MemberFollowed, type MemberUnfollowed, type MessageEnvelope, type Page, type PagingMetadataV2, type QueryMemberConnectionsRequest, type QueryMemberConnectionsResponse, type QueryMyMemberConnectionsRequest, type QueryMyMemberConnectionsResponse, type RestoreInfo, type URI, type UnfollowMemberRequest, type UnfollowMemberResponse, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, followMember, listCurrentMemberFollowers, listCurrentMemberFollowing, listMemberFollowers, listMemberFollowing, onFollowMemberFollowed, onFollowMemberUnfollowed, queryCurrentMemberConnections, queryMemberConnections, unfollowMember };