type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; type LlmItem = Record & { type: string; }; type LlmAction = Record & { type: 'action' | 'actionItem'; id: string | number; title: string; }; type LlmTheme = any; type IMedia = Record & { abstract?: string; alt?: string; mimeType?: string; title?: string; url?: string; width?: number; height?: number; }; type LlmCard = { id?: string; blockType?: string; blockName?: string; icon?: IMedia; body: string; title: string; message?: string; }; type LlmLogo = { logo: IMedia; }; type LlmSampleInputText = { id?: string; sampleInputText: string; }; type LlmHeaderCta = { id?: string; title: string; href: string; target: string; icon?: IMedia; }; type LlmRecognitionMode = ('none' | 'default') & string; type LlmSynthesisMode = ('none' | 'default' | 'elevenlabs') & string; type LlmContents = { additionalLogos?: LlmLogo[]; collapsedWelcomeText?: string; collapsedWelcomeTextCta?: string; collapsedWelcomeTextHover?: string; customIntro?: string; customTheme?: DeepPartial; disableSpeechRecognition?: boolean; disableSpeechSynthesis?: boolean; disclaimer?: string; disclaimerShort?: string; disclaimerFooter?: boolean; enableUpload?: boolean; extendedWelcomeText?: string; intro?: string; layoutBuilder?: LlmCard[]; logo?: IMedia; logoMini?: IMedia; openingSound?: IMedia; promptPlaceholder?: string; recognitionMode?: LlmRecognitionMode; sampleInputTexts?: LlmSampleInputText[]; headerCtas?: LlmHeaderCta[]; shortWelcomeText?: string; synthesisMode?: LlmSynthesisMode; textToSpeechApiKey?: string; textToSpeechVoiceId?: string; }; type LlmMode = ('site' | 'chat' | 'url2text' | 'translation') & string; type LlmMockApp = { mode: LlmMode; contents: LlmContents; } | Record; type LlmMockThreadMessage = { chunks: (string | LlmItem)[]; role: string; }; type LlmMockThread = LlmMockThreadMessage[] | Record; type LlmMock = { app: LlmMockApp; thread: LlmMockThread; }; type LlmTest = undefined | boolean | DeepPartial; type LlmDecorateUrl = (item: LlmItem) => (string | void) | Promise; type LlmOnAction = (item: LlmAction) => (void) | Promise; type LlmViewOptions = { threadId?: string; preview?: boolean; opened?: boolean; dismissable?: boolean; imperative?: boolean; skipCustomIntro?: boolean; embedded?: boolean; }; type LlmOptions = { apiKey: string; appKey: string; decorateUrl?: LlmDecorateUrl; onAction?: LlmOnAction; test?: LlmTest; customTheme?: Partial; locale?: string; market?: string; endpoint?: string; } & LlmViewOptions; type LlmInstance = { open: () => void; }; declare function bomLlm(props: LlmOptions): LlmInstance | undefined; export { bomLlm };