import * as utils from '../../utils/type-utils'; import * as def from '../definition'; export type BaseMessage = { tags: Record; }; export type BaseConversation = { tags: Record; }; export type BaseChannel = { messages: Record; message: BaseMessage; conversation: BaseConversation; }; export type BaseUser = { tags: Record; }; export type BaseAction = { input: any; output: any; }; export type BaseState = { type: def.StateType; payload: any; }; export type BaseIntegration = { name: string; version: string; configuration: any; configurations: Record; actions: Record; channels: Record; events: Record; states: Record; user: BaseUser; entities: Record; }; export type InputBaseChannel = utils.DeepPartial; export type DefaultChannel = { messages: utils.Default; message: utils.Default; conversation: utils.Default; }; export type InputBaseIntegration = utils.DeepPartial; export type DefaultIntegration = { name: utils.Default; version: utils.Default; configuration: utils.Default; configurations: utils.Default; actions: utils.Default; events: utils.Default; states: utils.Default; user: utils.Default; entities: utils.Default; channels: undefined extends I['channels'] ? BaseIntegration['channels'] : { [K in keyof I['channels']]: DefaultChannel>; }; };