import { ReactNode } from 'react'; import { ChatSettings } from '../context/chat-settings-context.tsx'; export declare const DEFAULT_SETTINGS: ChatSettings; /** * Props for the ChatSettingsProvider component. * */ export interface ChatSettingsProviderProps { /** Child components that will have access to chat settings */ children?: ReactNode; /** * Initial global settings. Will be merged with defaults. * @defaultValue `{}` */ initialGlobalSettings?: Partial; /** * Initial room-specific settings mapping. * @defaultValue `{}` */ initialRoomSettings?: Record>; } /** * Provider component that manages global and room-level chat settings. * * This component provides a context for managing chat functionality settings * across an application. It supports both global default settings and * room-specific overrides. The settings control whether certain UI features are enabled/disabled, * but do not affect the underlying Ably Chat functionality. If you wish to ensure no user can edit or delete messages, * you must also configure the Ably client capabilities accordingly. * * @example * ```tsx * const globalSettings = { * allowMessageUpdatesOwn: true, * allowMessageUpdatesAny: false, * allowMessageDeletesOwn: true, * allowMessageDeletesAny: false, * allowMessageReactions: true * }; * * const roomSettings = { * 'general': { * allowMessageUpdatesOwn: true, * allowMessageUpdatesAny: true // Allow user to update any message in general room * }, * 'announcements': { * allowMessageUpdatesOwn: false, * allowMessageUpdatesAny: false, * allowMessageDeletesOwn: false, * allowMessageDeletesAny: true // Allow user to delete any messages in announcements * } * }; * * * * * ``` * * @param ChatSettingsProviderProps - Props for the provider component * @returns {@link ChatSettingsProvider} component that wraps children components. * * @public */ export declare const ChatSettingsProvider: ({ initialGlobalSettings, initialRoomSettings, children, }: ChatSettingsProviderProps) => import("react/jsx-runtime").JSX.Element;