import { Accessor } from 'solid-js'; import type { UploadsConfig, MessageType, LeadsConfig } from '@/widget/types'; import type { DeploymentCapabilities } from '@/types/capabilities'; import { type DeploymentSessionScope } from '@/widget/types/session'; import type { WidgetFeatureFlags, WidgetFeatureOverrides } from '@/types/features'; type ChatConfigParams = { deploymentId: string; /** localStorage scope; defaults to deploymentId. Preview mounts pass an isolated scope. */ storageId?: string; apiHost: string | undefined; onRequest?: (request: RequestInit) => Promise; /** Embed-time feature overrides; only `false` has an effect. */ featureOverrides: Accessor; welcomeMessage: string | undefined; starterPromptsProp: Accessor | undefined>; disclaimer: any; setMessages: (fn: (prev: MessageType[]) => MessageType[]) => void; setIsLeadSaved: (v: boolean) => void; setLeadEmail: (v: string) => void; setIsTTSEnabled: (v: boolean) => void; }; export declare function createChatConfig(params: ChatConfigParams): { unreachable: Accessor; deploymentMissing: Accessor; configResolved: Accessor; retryConfig: () => void; capabilities: Accessor; sessionScope: Accessor; authMode: Accessor; features: Accessor; isChatFlowAvailableToStream: Accessor; chatflowName: Accessor; starterPrompts: Accessor; setStarterPrompts: import("solid-js").Setter; chatFeedbackStatus: Accessor; fullFileUpload: Accessor; uploadsConfig: Accessor; leadsConfig: Accessor; disclaimerPopupOpen: Accessor; handleDisclaimerAccept: () => void; followUpPromptsStatus: Accessor; followUpPrompts: Accessor; setFollowUpPrompts: import("solid-js").Setter; fullFileUploadAllowedTypes: Accessor; setFullFileUploadAllowedTypes: import("solid-js").Setter; startInputType: Accessor; formTitle: Accessor; formDescription: Accessor; formInputParams: Accessor; }; export {};