import { IRoomService } from '../';

interface IComponentManager {
    getComponentConfig(name: ComponentName): ComponentConfigItem;
    setComponentConfig(options: Partial<ComponentConfig>): boolean;
}
declare const componentNames: readonly ["SwitchTheme", "LayoutControl", "RoomInfo", "RoomLink", "Language", "UserInfo", "ScreenShare", "FullScreen", "ManageMemberControl", "InviteControl", "ChatControl", "MoreControl", "VirtualBackground", "BasicBeauty", "AIControl"];
export type ComponentName = (typeof componentNames)[number];
type ComponentConfigItem = {
    visible: boolean;
    [key: string]: any;
};
export type ComponentConfig = {
    [key in ComponentName]: ComponentConfigItem;
};
export declare class ComponentManager implements IComponentManager {
    static instance?: ComponentManager;
    private service;
    private componentConfig;
    constructor(service: IRoomService);
    static getInstance(ctx: IRoomService): ComponentManager;
    static destroyInstance(): void;
    getComponentConfig(name: ComponentName): ComponentConfigItem;
    setComponentConfig(options: Partial<ComponentConfig>): boolean;
}
export {};
