import { FC, ReactNode } from "react";
import { UUIDMetadataObject, ObjectCustom } from "pubnub";
import "./member-list.scss";
export interface MemberListProps {
    children?: ReactNode;
    /** Option to pass a list of members, including metadata, to render on the list. */
    members: UUIDMetadataObject<ObjectCustom>[] | string[];
    /** Option to pass a list of present member IDs to mark them with a presence indicator. */
    presentMembers?: string[];
    /** This text will be added after current user's name */
    selfText?: string;
    /** Members are sorted by presence and alphabetically by default, you can override that by providing a sorter function */
    sort?: (a: UUIDMetadataObject<ObjectCustom>, b: UUIDMetadataObject<ObjectCustom>) => -1 | 0 | 1;
    /** Provide extra actions renderer to add custom action buttons to each member */
    extraActionsRenderer?: (member: UUIDMetadataObject<ObjectCustom>) => JSX.Element;
    /** Option to provide a custom user renderer to override themes and CSS variables. */
    memberRenderer?: (member: UUIDMetadataObject<ObjectCustom>) => JSX.Element;
    /** A callback run when user clicked one of the members. */
    onMemberClicked?: (member: UUIDMetadataObject<ObjectCustom>) => unknown;
}
/**
 * Renders a list of members.
 *
 * It can represent all users of the application, only members of
 * the current channel, users currently subscribed/present on the channel, or whatever else is passed
 * into it. Custom memberRenderer can be used to modify how the users are rendered. For example
 * you can add presence indicators.
 */
export declare const MemberList: FC<MemberListProps>;
