import { BasePlugin } from '../BasePlugin';
export interface ItemType {
    category_name: string;
    category_cn: string;
    index: number;
    derived_id: string;
    longitude: number;
    latitude: number;
    fov: number;
    width: number;
    height: number;
    position: {
        start: number[];
        end: number[];
        rotation: number[];
    };
    mask_color: number[];
    visible_viewpoint: {
        [key: string]: Record<any, any>;
    };
}
export interface MaskType {
    derived_id: string;
    index: number;
    object_mask_url: string;
}
export type PluginData = {
    data_list: ItemType[];
    object_mask_list: MaskType[];
};
export type ServerData = {
    data_list: ItemType[];
    object_mask_list: MaskType[];
};
/** 插件配置 */
export interface Config {
}
/** 插件初始化参数 */
export interface Params {
    config?: Partial<Config>;
    initialState?: Partial<State>;
}
/** 插件状态 */
export interface State extends BasePlugin.State {
    /** 插件是否启用 */
    enabled: boolean;
    /** 插件整体是否可见 */
    visible: boolean;
    /** 插件模式 */
    mode: 'mask' | 'box';
    /** 选中ID */
    selectedId: string | null;
    /** 全选 */
    selectAll: boolean;
}
/** 插件事件 */
export interface EventMap extends BasePlugin.EventMap<State, ServerData> {
}
