import { UserListDropdownInterface, UserListDropdownOptionProps, UserListDropdownSeparatorProps, UserListDropdownTitleActionProps, UserListDropdownTitleActionOnClickArguments, UserListDropdownFixedContentInformationProps, UserListDropdownGenericContentInformationProps } from './types';
import { UserListDropdownItemType, UserListDropdownSeparatorPosition } from './enums';
export declare class UserListDropdownOption implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    label: string;
    icon: string;
    tooltip: string;
    allowed: boolean;
    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.
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ label, icon, tooltip, allowed, onClick, userId, }: UserListDropdownOptionProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownSeparator implements UserListDropdownInterface {
    id: string;
    userId: string;
    position: UserListDropdownSeparatorPosition;
    type: UserListDropdownItemType;
    /**
     * 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.
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ userId, position }: UserListDropdownSeparatorProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownFixedContentInformation implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    label: string;
    icon: string;
    iconRight: string;
    textColor: string;
    allowed: boolean;
    /**
     * 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.
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, label, icon, iconRight, allowed, userId, textColor, }: UserListDropdownFixedContentInformationProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownGenericContentInformation implements UserListDropdownInterface {
    id: string;
    userId: string;
    allowed: boolean;
    type: UserListDropdownItemType;
    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.
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, contentFunction, allowed, userId, }: UserListDropdownGenericContentInformationProps);
    setItemId: (id: string) => void;
}
export declare class UserListDropdownTitleAction implements UserListDropdownInterface {
    id: string;
    userId: string;
    type: UserListDropdownItemType;
    icon: string;
    tooltip: 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.
     *
     * @returns Object that will be interpreted by the core of Bigbluebutton (HTML5).
     */
    constructor({ id, icon, userId, onClick, tooltip, }: UserListDropdownTitleActionProps);
    setItemId: (id: string) => void;
}
