import { UserListDropdownInterface, UserListDropdownOptionProps, UserListDropdownSeparatorProps, UserListDropdownTitleActionProps, UserListDropdownTitleActionOnClickArguments, UserListDropdownFixedContentInformationProps, UserListDropdownGenericContentInformationProps } from './types';
import { UserListDropdownItemType, UserListDropdownSeparatorPosition } from './enums';
import { PluginIconType } from '../common/icon';
export declare class UserListDropdownOption implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    label: string;
    icon: PluginIconType;
    tooltip: string;
    allowed: boolean;
    dataTest: string;
    onClick: () => void;
    /**
     * Returns object to be used in the setter for the User List Dropdown. In this case,
     * a button.
     *
     * @param label - label to be displayed in user list dropdown option.
     * @param tooltip - label to be displayed when hovering the user list dropdown option.
     * @param icon - icon to be used in the user list dropdown option. It goes in the left side of it.
     * @param onClick - function to be called when clicking the option.
     * @param allowed - if false, the use list dropdown  will not appear in the dropdown.
     * @param userId - the userId in which this dropdown option will appear when the user
     * list item is clicked.
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ label, icon, tooltip, allowed, dataTest, onClick, userId, }: UserListDropdownOptionProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownSeparator implements UserListDropdownInterface {
    id: string;
    userId: string;
    position: UserListDropdownSeparatorPosition;
    type: UserListDropdownItemType;
    dataTest: string;
    /**
     * Returns object to be used in the setter for the User List Dropdown. In this case,
     * a separator.
     *
     * @param userId - the userId in which this dropdown separator will appear when the user
     * list item is clicked.
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ userId, position, dataTest }: UserListDropdownSeparatorProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownFixedContentInformation implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    label: string;
    icon: PluginIconType;
    iconRight: PluginIconType;
    textColor: string;
    allowed: boolean;
    dataTest: string;
    /**
     * Returns object to be used in the setter for the User List Dropdown. In this case,
     * a button.
     *
     * @param label - label to be displayed in user list dropdown information.
     * @param icon - icon to be used in the user list dropdown information.
     * It goes on the left side of it.
     * @param iconRight - icon to be used in the user list dropdown information.
     * It goes on the right side of it.
     * @param allowed - if false, the use list dropdown  will not appear in the dropdown.
     * @param textColor - Color that the text will have.
     * @param userId - the userId in which this dropdown information will appear when the user
     * list item is clicked.
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, label, icon, iconRight, allowed, userId, textColor, dataTest, }: UserListDropdownFixedContentInformationProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownGenericContentInformation implements UserListDropdownInterface {
    id: string;
    userId: string;
    allowed: boolean;
    type: UserListDropdownItemType;
    dataTest: string;
    contentFunction: (element: HTMLElement) => void;
    /**
     * Returns object to be used in the setter for the User List Dropdown. In this case,
     * a button.
     *
     * @param label - label to be displayed in user list dropdown information.
     * @param icon - icon to be used in the user list dropdown information.
     * It goes on the left side of it.
     * @param iconRight - icon to be used in the user list dropdown information.
     * It goes on the right side of it.
     * @param allowed - if false, the use list dropdown  will not appear in the dropdown.
     * @param textColor - Color that the text will have.
     * @param userId - the userId in which this dropdown information will appear when the user
     * list item is clicked.
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, contentFunction, allowed, userId, dataTest, }: UserListDropdownGenericContentInformationProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownTitleAction implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    icon: PluginIconType;
    tooltip: string;
    dataTest: string;
    onClick: (args: UserListDropdownTitleActionOnClickArguments) => void;
    /**
     * Returns object to be used in the setter for the User List Dropdown. In this case,
     * a button (action) for the title.
     *
     * @param onClick - onClick function.
     * @param tooltip - quick explanatory message that will appear when user hover the action.
     * @param icon - icon to be used in the user list dropdown title action.
     * It goes on the left side of it.
     * @param userId - the userId in which this dropdown title action will appear when the user
     * list item is clicked.
     * @param dataTest - string attribute to be used for testing
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, icon, userId, onClick, tooltip, dataTest, }: UserListDropdownTitleActionProps);
    setItemId: (id: string) => void;
}
