import { ReactNode } from "react";
import { MatrixEvent } from "matrix-js-sdk/src/matrix";
import type MessagePanel from "../MessagePanel";
import type { WrappedEvent } from "../MessagePanel";
import { BaseGrouper } from "./BaseGrouper";
export declare class MainGrouper extends BaseGrouper {
    readonly panel: MessagePanel;
    readonly firstEventAndShouldShow: WrappedEvent;
    readonly prevEvent: MatrixEvent | null;
    readonly lastShownEvent: MatrixEvent | undefined;
    static canStartGroup: (panel: MessagePanel, { event: ev, shouldShow }: WrappedEvent) => boolean;
    constructor(panel: MessagePanel, firstEventAndShouldShow: WrappedEvent, prevEvent: MatrixEvent | null, lastShownEvent: MatrixEvent | undefined, nextEvent: WrappedEvent | null, nextEventTile: MatrixEvent | null);
    shouldGroup({ event: ev, shouldShow }: WrappedEvent): boolean;
    add(wrappedEvent: WrappedEvent): void;
    private generateKey;
    getTiles(): ReactNode[];
    getNewPrevEvent(): MatrixEvent;
}
