import { MinMaxType, EntityEidType, BasicInfoAtomType, TransformAtom2DType, VisibleAtomType, EntityFlagAtomType, Visible2DAtomType, deepPartial, EntityOutlinerAtomType, TscrollPolicy } from '../data-type';
export interface PoiType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<TransformAtom2DType>, Partial<VisibleAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    poiStyle?: Partial<PoiEntityAtomType>;
    visible2D?: deepPartial<Visible2DAtomType>;
}
export type Tanimation = 'leftToRight' | 'rightToLeft' | 'topToBottom' | 'bottomToTop';
export type TtextAlign = 'left' | 'center' | 'right';
export interface IlabelStyle {
    width?: number;
    height?: number;
    visible?: boolean;
    hideDistance?: number;
    offset?: Array<number>;
    zIndex?: number;
    background?: Array<string>;
}
export interface ILabelContentStyle {
    width?: number;
    height?: number;
    fontSize?: number;
    padding?: string;
    color?: string;
    textAlign?: TtextAlign;
    autoWrap?: boolean;
    animation?: Tanimation;
    scrollSpeed?: number;
    scrollPolicy?: TscrollPolicy;
}
export interface PoiEntityAtomType {
    markerVisible: boolean;
    markerNormalUrl: string;
    markerActivateUrl: string;
    markerSize: MinMaxType;
    markerOffset: Array<number>;
    labelContent: Array<string>;
    labelStyle: IlabelStyle;
    generalLabelStyle: ILabelContentStyle;
    specificLabelStyle: {
        [key: string]: ILabelContentStyle;
    };
}
export interface IGenerate {
    Note2dEntityAtom?: Partial<PoiEntityAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    TransformAtom2D?: Partial<TransformAtom2DType>;
    VisibleAtom?: Partial<VisibleAtomType>;
    Visible2DAtom?: deepPartial<Visible2DAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
