import { MatrixEvent } from "matrix-js-sdk/src/matrix";
import { ViewRoom as ViewRoomEvent } from "@matrix-org/analytics-events/types/typescript/ViewRoom";
import { ActionPayload } from "../payloads";
import { Action } from "../actions";
import { IOOBData, IThreepidInvite } from "../../stores/ThreepidInviteStore";
import { IOpts } from "../../createRoom";
import { JoinRoomPayload } from "./JoinRoomPayload";
import { AtLeastOne } from "../../@types/common";
export type FocusNextType = "composer" | "threadsPanel" | undefined;
interface BaseViewRoomPayload extends Pick<ActionPayload, "action"> {
    action: Action.ViewRoom;
    event_id?: string;
    highlighted?: boolean;
    scroll_into_view?: boolean;
    should_peek?: boolean;
    joining?: boolean;
    via_servers?: string[];
    context_switch?: boolean;
    replyingToEvent?: MatrixEvent;
    auto_join?: boolean;
    threepid_invite?: IThreepidInvite;
    justCreatedOpts?: IOpts;
    oob_data?: IOOBData;
    forceTimeline?: boolean;
    show_room_tile?: boolean;
    clear_search?: boolean;
    view_call?: boolean;
    skipLobby?: boolean;
    opts?: JoinRoomPayload["opts"];
    deferred_action?: ActionPayload;
    metricsTrigger: ViewRoomEvent["trigger"];
    metricsViaKeyboard?: ViewRoomEvent["viaKeyboard"];
}
export type ViewRoomPayload = BaseViewRoomPayload & AtLeastOne<{
    room_id?: string;
    room_alias?: string;
    focusNext: FocusNextType;
}>;
export {};
