import React from "react";
import { MatrixEvent, RoomMember } from "matrix-js-sdk/src/matrix";
import { SDKContext } from "../../../contexts/SDKContext";
interface IProps {
    roomId: string;
    searchQuery: string;
    hideHeaderButtons?: boolean;
    onClose(): void;
    onSearchQueryChanged: (query: string) => void;
}
interface IState {
    loading: boolean;
    filteredJoinedMembers: Array<RoomMember>;
    filteredInvitedMembers: Array<RoomMember | MatrixEvent>;
    canInvite: boolean;
    truncateAtJoined: number;
    truncateAtInvited: number;
}
export default class MemberList extends React.Component<IProps, IState> {
    private readonly showPresence;
    private mounted;
    static contextType: React.Context<import("../../../contexts/SDKContext").SdkContextClass>;
    context: React.ContextType<typeof SDKContext>;
    private tiles;
    constructor(props: IProps, context: React.ContextType<typeof SDKContext>);
    private listenForMembersChanges;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private get canInvite();
    private getMembersState;
    private onUserPresenceChange;
    private onRoom;
    private onMyMembership;
    private onRoomStateUpdate;
    private onRoomMemberName;
    private onRoomStateEvent;
    private updateList;
    updateListNow(showLoadingSpinner?: boolean): Promise<void>;
    private createOverflowTileJoined;
    private createOverflowTileInvited;
    private createOverflowTile;
    private showMoreJoinedMemberList;
    private showMoreInvitedMemberList;
    componentDidUpdate(prevProps: Readonly<IProps>, prevState: Readonly<IState>, snapshot?: any): void;
    private onSearchQueryChanged;
    private onPending3pidInviteClick;
    private getPending3PidInvites;
    private makeMemberTiles;
    private getChildrenJoined;
    private getChildCountJoined;
    private getChildrenInvited;
    private getChildCountInvited;
    render(): React.ReactNode;
    private onInviteButtonClick;
}
export {};
