import { Meeting } from '../../types/dyte-client'; import type { UIConfig } from '../../types/ui-config'; import { DyteUIBuilder } from '../builder'; export type ExtendConfig = (config: Partial, baseConfig: UIConfig) => UIConfig; export interface Addon { /** * Register the addon, add event listeners, etc. * @param config The current UIConfig * @param meeting The meeting object * @param getBuilder A function to get the DyteUIBuilder instance for the meeting UI config * @returns The updated UIConfig */ register: (config: UIConfig, meeting: Meeting, getBuilder: (config: UIConfig) => DyteUIBuilder) => UIConfig; /** * Unregister the addon, cleanup any event listeners, etc. * @returns void */ unregister: () => void; } /** * Register addons to the meeting * @param addons The list of addons to register * @param meeting The meeting object * @param config The current UIConfig * @returns The updated UIConfig */ export declare function registerAddons(addons: Addon[], meeting: Meeting, config?: UIConfig): UIConfig;