import { ClientInputs, User } from '@botpress/client'; import type { commonTypes } from '../../common'; import type { AsyncCollection } from '../../utils/api-paging-utils'; import type * as typeUtils from '../../utils/type-utils'; import { BasePlugin } from '../common'; export type UserFinder = { list: (props?: { conversationId?: TConversationId; tags?: commonTypes.ToTags>; }) => AsyncCollection>; getById: (props: { id: string; }) => Promise>; }; export type ActionableUser = TConversationId extends string ? ActionableUserWithConversation : ActionableUserWithoutConversation; export type ActionableUserWithConversation = BaseActionableUser & { removeFromConversation: () => Promise>; }; export type ActionableUserWithoutConversation = BaseActionableUser & { addToConversation: (props: { conversationId: TNewConversationId; }) => Promise>; }; export type BaseActionableUser = typeUtils.Merge>; }> & { update: (props: typeUtils.Merge, { tags?: commonTypes.ToTags>; }>) => Promise>; };