import React, { ReactNode } from "react";
import { EmitEventType, ApplianceViewManagerLike } from "./types";
import { TextEditorInfo } from "../component/textEditor";
import { ShowFloatBarMsgValue } from "../displayer/types";
export interface BaseDisplayerProps {
    viewId: string;
    mananger: ApplianceViewManagerLike;
    refs: {
        snapshotContainerRef?: React.RefObject<HTMLDivElement>;
        backgroundSnapshotContainerRef?: React.RefObject<HTMLDivElement>;
        canvasContainerRef: React.RefObject<HTMLDivElement>;
        subLocalCanvasContainerRef?: React.RefObject<HTMLDivElement>;
        canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
        canvasFloatRef: React.RefObject<HTMLCanvasElement>;
        backgroundContainerRef: React.RefObject<HTMLDivElement>;
        canvasBgRef: React.RefObject<HTMLCanvasElement>;
        canvasTopRef?: React.RefObject<HTMLCanvasElement>;
        floatBarRef: React.RefObject<HTMLDivElement>;
    };
}
export interface BaseDisplayerState {
    showFloatBar: boolean;
    showFloatBarBtn: boolean;
    floatBarData?: ShowFloatBarMsgValue;
    dpr: number;
    operationType: EmitEventType;
    angle: number;
    scale: [number, number];
    editors?: Map<string, TextEditorInfo>;
    activeTextId?: string;
    activeMiniMapViewId?: string;
    activeTextEditor?: boolean;
}
export declare const DisplayerContext: React.Context<Pick<BaseDisplayerState, "scale" | "floatBarData" | "dpr" | "operationType" | "angle" | "activeTextId" | "activeTextEditor"> & {
    viewId: string;
    isNoPointerEvents: boolean;
    mananger?: ApplianceViewManagerLike;
    floatBarColors: [number, number, number][];
    setAngle: (angle: number) => void;
    setOperationType: (type: EmitEventType) => void;
    setFloatBarData: (data: Partial<ShowFloatBarMsgValue>) => void;
}>;
export declare class BaseViewDisplayer extends React.Component<BaseDisplayerProps, BaseDisplayerState> {
    showTextFloatBar: boolean;
    canSelectorSwitch: boolean;
    rightBoundBreak: boolean;
    constructor(props: BaseDisplayerProps);
    private get editors();
    componentDidMount(): void;
    componentWillUnmount(): void;
    setActiveMiniMap(viewId?: string): void;
    showFloatBarBtn(bol: boolean): void;
    showFloatBar(show: boolean, value?: Partial<ShowFloatBarMsgValue>): void;
    activeTextEditor(): void;
    unActiveTextEditor(): void;
    updateTextEditorInfo(activeTextId?: string): void;
    setFloatBarData(data: Partial<ShowFloatBarMsgValue>): void;
    private setAngle;
    private setOperationType;
    render(): ReactNode;
}
