import { App } from '../types';
import { Element, Layer, ElementOptions, CreateElementOption } from './types';
import { Layer as SLayer, Element as SElement, ElementType as SElementType } from '@web-map-service/map2d';
interface LayerOptions {
    type: string;
    name?: string;
    createElement(app: App, sLayer: SLayer, options: CreateElementOption): Element;
    sElementType: SElementType[];
}
export declare function createLayerCommon(app: App, layerOptions: LayerOptions): Layer;
export declare function createElementCommon(app: App, sLayer: SLayer, options: ElementOptions): Element;
/**
  通过app和服务元素来找到应用元素, 通过打标属性appLayerType、appElementId找到Element
 */
export declare function getElementBySElement(app: App, sElement: SElement): Element | undefined;
/**
 * SElement更新data通知同步一下element数据主要是为了触发一下update反射
 */
export declare function syncElementsDataEmit(app: App, sElements: SElement[]): Element[];
export interface ElementSetDataItem {
    element: Element;
    data: Partial<{
        data: Element['data'];
        style: Element['style'];
        rotate: Element['rotate'];
        name: Element['name'];
    }>;
}
/**
 * 同步数据入口
 * @param data
 * @param emitter
 */
export declare function setElementsData(data: ElementSetDataItem[], emitter: App['emitter'], useSync?: boolean): void;
export {};
