import type * as client 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 type { BasePlugin } from '../common'; import type * as messageProxy from '../message-proxy/types'; import type * as userProxy from '../user-proxy/types'; export type ConversationFinder = _ConversationFinderForDepType & _ConversationFinderForDepType; type _ConversationFinderForDepType = { [TAlias in typeUtils.StringKeys | '*']: { [TChannelName in TAlias extends '*' ? '*' : typeUtils.StringKeys | '*']: _ConversationFinderForChannel>; }; }; type _ConversationFinderForChannel = { list: (props?: typeUtils.Merge, { tags?: commonTypes.ToTags>; }>) => AsyncCollection>; getById: (props: { id: string; }) => Promise>; }; type _MessageForChannel = _FallbackWhenNever & typeUtils.ValueOf<{ [TMessageName in typeUtils.StringKeys]: { type: TMessageName; payload: TPlugin[TDepType][TAlias]['channels'][TChannelName]['messages'][TMessageName]; tags: commonTypes.ToTags>; }; }>, typeUtils.Merge>; }>>; type _FallbackWhenNever = [T] extends [never] ? TFallback : T; export type ActionableConversation = typeUtils.Merge>; channel: TChannelName; }> & { delete: () => Promise; update: (props: typeUtils.Merge, { tags?: commonTypes.ToTags>; }>) => Promise>; getMessage: (props: { id: string; }) => Promise>; getOrCreateMessage: (props: Omit & typeUtils.DistributivePick & { tags: commonTypes.ToTags>; }) => Promise>; createMessage: (props: Omit & typeUtils.DistributivePick & { tags: commonTypes.ToTags>; }) => Promise>; listMessages: (props?: typeUtils.Merge, { tags?: commonTypes.ToTags>; }>) => AsyncCollection>; listParticipants: () => AsyncCollection>; }; export {};