import { ApplicationCancelTokenSource, ApplicationContext, MessageContext, MultiConversationsContext, NoConversationContext, NoConversationPopoverContext, SingleConversationContext, SingleConversationPopoverContext, MessageComposerContext } from '@frontapp/ui-bridge'; import { Observable } from 'rxjs'; type InternalContextProperties = 'hostId' | 'entryPointId'; type WebViewContextFunctions = Pick>; type WebViewSingleConversationContext = Omit; type WebViewSingleConversationPopoverContext = Omit; type WebViewNoConversationContext = Omit; type WebViewNoConversationPopoverContext = Omit; type WebViewMultipleConversationsContext = Omit; type WebViewMessageContext = Omit; type WebViewMessageComposerContext = Omit; export type WebViewContext = WebViewSingleConversationContext | WebViewNoConversationPopoverContext | WebViewSingleConversationPopoverContext | WebViewNoConversationContext | WebViewMultipleConversationsContext | WebViewMessageContext | WebViewMessageComposerContext; export type WebViewBaseBridge = { buildCancelTokenSource(): ApplicationCancelTokenSource; contextUpdates: Observable; isCancelError(error: any): boolean; }; export type WebViewBridge = WebViewBaseBridge & WebViewContextFunctions; export declare enum WebViewMessageTypesEnum { CONTEXT_UPDATE = "context_update", FUNCTION_CALL = "function_call", FUNCTION_CANCEL = "function_cancel", FUNCTION_RESULT = "function_result", FUNCTION_ERROR = "function_error" } interface WebViewContextUpdateMessage { type: WebViewMessageTypesEnum.CONTEXT_UPDATE; context: WebViewContext; } interface WebViewFunctionResultMessage { type: WebViewMessageTypesEnum.FUNCTION_RESULT; id: string; value: unknown; } interface WebViewFunctionErrorMessage { type: WebViewMessageTypesEnum.FUNCTION_ERROR; id: string; error: string; } export type WebViewHostMessage = WebViewContextUpdateMessage | WebViewFunctionResultMessage | WebViewFunctionErrorMessage; export type WebViewHostMessageWithPort = WebViewHostMessage & { port: MessagePort; }; type WebViewContextUpdateMessageWithPort = WebViewContextUpdateMessage & { port: MessagePort; }; export declare const webViewBridgeHandshake = "@frontapp/ui-sdk#WebViewBridge.handshake"; interface WebViewFunctionCallMessage { type: WebViewMessageTypesEnum.FUNCTION_CALL; id: string; contextId: string; name: string; args: ReadonlyArray; } interface WebViewFunctionCancelMessage { type: WebViewMessageTypesEnum.FUNCTION_CANCEL; id: string; } export type WebViewSdkMessage = WebViewFunctionCallMessage | WebViewFunctionCancelMessage; export declare function isContextUpdateMessageWithPort(message: WebViewHostMessage): message is WebViewContextUpdateMessageWithPort; export declare function isFunctionResultMessage(message: WebViewHostMessage): message is WebViewFunctionResultMessage | WebViewFunctionErrorMessage; /** Filter a type to only keep functions properties. */ type FunctionPropertyNames = { [K in keyof T]: T[K] extends never ? never : T[K] extends (...args: any) => any ? K : never; }[keyof T]; export {};