import { UserCameraDropdownItemType } from './enums';
import { OnclickFunctionCallbackArguments, UserCameraDropdownCallbackFunctionsArguments, UserCameraDropdownInterface, UserCameraDropdownOptionProps, UserCameraDropdownSeparatorProps } from './types';
import { PluginIconType } from '../common/icon';
export declare class UserCameraDropdownOption implements UserCameraDropdownInterface {
    id: string;
    type: UserCameraDropdownItemType;
    label: string;
    icon: PluginIconType;
    dataTest: string;
    onClick: (args: OnclickFunctionCallbackArguments) => void;
    displayFunction?: (args: UserCameraDropdownCallbackFunctionsArguments) => boolean;
    /**
     * Returns object to be used in the setter for User Camera Dropdown. In this case
     * an option.
     *
     * @param label - label to be displayed in the option.
     * @param icon - icon to be displayed in the option. Left side of it.
     * @param dataTest - string attribute to be used for testing
     * @param onClick - function to be called when clicking the button
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5)
     */
    constructor({ id, label, icon, dataTest, onClick, displayFunction, }: UserCameraDropdownOptionProps);
    setItemId: (id: string) => void;
}
export declare class UserCameraDropdownSeparator implements UserCameraDropdownInterface {
    id: string;
    type: UserCameraDropdownItemType;
    dataTest: string;
    displayFunction?: (args: UserCameraDropdownCallbackFunctionsArguments) => boolean;
    /**
     * Returns object to be used in the setter for User Camera Dropdown. In this case
     * a separator.
     *
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5)
     */
    constructor({ displayFunction, dataTest, }?: UserCameraDropdownSeparatorProps);
    setItemId: (id: string) => void;
}
