import { CurrentSceneStatus, InworldPacket as ProtoPacket } from '../../../../proto/ai/inworld/packets/packets_pb'; import { Character } from '../../entities/character.entity'; import { InworldPacket } from '../../entities/packets/inworld_packet.entity'; import { AudioSessionStartPacketParams, CancelResponsesProps, SendPacketParams, TriggerParameter } from './index'; export interface Extension { convertPacketFromProto?: (proto: ProtoPacket) => InworldPacketT; beforeLoadScene?: (packets: ProtoPacket[]) => ProtoPacket[]; afterLoadScene?: (res: CurrentSceneStatus) => void; } export interface ConvesationInterface { getConversationId(): string; getParticipants(): string[]; getCharacters(): Character[]; changeParticipants(participants: string[]): void; updateParticipants(participants: string[]): Promise; sendText: (text: string) => Promise; sendAudio: (chunk: string) => Promise; sendTrigger: (name: string, parameters?: { parameters?: TriggerParameter[]; character?: Character; }) => Promise; sendAudioSessionStart(params?: AudioSessionStartPacketParams): Promise; sendAudioSessionEnd(): Promise; sendCancelResponse(cancelResponses?: CancelResponsesProps): Promise; sendTTSPlaybackMute(isMuted: boolean): Promise; sendNarratedAction(text: string): Promise; sendCustomPacket(getPacket: (params: SendPacketParams) => ProtoPacket): Promise; }