import { Able, TransformData, Entity, EntityData } from '../../common'; import { Rectangle, RectangleAlignType } from '@gedit/math'; import type { EntityManager } from '../../common'; import type { SelectionService } from '@gedit/application-common'; export declare const SelectPayload: unique symbol; export interface SelectPayload { selectBounds?: Rectangle; alignBounds?: Rectangle; selectionService?: SelectionService; zIndex?: number; align?: SelectAlignType; fromMouse?: boolean; additional?: boolean; hovered?: boolean; } export type SelectControlKey = 'rotate' | 'origin' | 'left' | 'bottom' | 'right' | 'top' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom'; export type SelectDisplayType = 'rectangle' | 'circle' | string; export declare const SelectAllControlKeys: SelectControlKey[]; interface SelectStateData { selected: boolean; hovered: boolean; mouseSelect: boolean; zIndex: number; displayType: SelectDisplayType; controlKeys: SelectControlKey[]; originBtnDisabled?: boolean; } export type SelectAlignType = RectangleAlignType; /** * 选中状态 */ export declare class SelectState extends EntityData { static type: string; getDefaultData(): SelectStateData; get controlKeys(): SelectControlKey[]; get displayType(): SelectDisplayType; get originBtnDisabled(): boolean | undefined; get selected(): boolean; get hovered(): boolean; set hovered(hovered: boolean); get zIndex(): number; get mouseSelect(): boolean; set mouseSelect(mouseSelect: boolean); set selected(selected: boolean); set zIndex(zIndex: number); } export declare function syncToSelection(selectedEntities: Entity[], selectionService: SelectionService): void; /** * 可被选中并对其的组件 */ export declare class Selectable extends Able { static type: string; payload: SelectPayload; /** * 处理全局数据 * @param entities * @param selectPayload */ static globalBefore(entities: Entity[], selectPayload: SelectPayload): SelectPayload | undefined; handle(transform: TransformData, selectState: SelectState, selectPayload: SelectPayload): void; } export declare namespace Selectable { function getSelectedBounds(entityManager: EntityManager): Rectangle | undefined; function getZIndex(entity: Entity): number | undefined; } export {}; //# sourceMappingURL=selectable.d.ts.map