import { Matrix4, Object3D, Vector3 } from 'three';
import { ApplicationService } from '../ApplicationServices/Application';
import { InputState } from '../Common/InputState';
import { LogType } from '../Common/Log';
import { Entity } from '../DatabaseServices/Entity/Entity';
import AxisModeManage from '../UI/Components/AxisMode/AxisModeManage';
import CameraStateManage from '../UI/Components/CameraControlButton/CameraState/CameraStateManage';
import { CommandInputManage } from '../UI/Components/CommandInput/CommandInputManage';
import { MaskManage } from '../UI/Components/Modal/MaskManage';
import { ModalManage } from '../UI/Components/Modal/ModalsManage';
import TaskStateManage from '../UI/Components/TaskControl/TaskStateManage';
import { CommandStore, MsgInfo } from '../UI/Store/CommandStore';
import { ContextMenuServices } from './ContextMenu';
import { GetDistanceServices } from './GetDistanceServices';
import { GetEntityServices } from './GetEntityServices';
import { GetKeyWordsServices } from './GetKeyWordService';
import { GetPointServices } from './GetPointServices';
import { GetRectPointServices } from './GetRectServices';
import { SsgetServiecs } from './GetSelectionServices';
import { GetStringService } from './GetStringService';
import { GripDragServices } from './GripDragServices';
import { KeyBoardControls } from './KeyBoardControls';
import { MouseControls } from './MouseControls';
import { GetDistendPrompt, GetEntityPrompt, GetKeyWordPrommpt, GetPointPrompt, GetSelectionPrompt, GetStringPrompt, PromptRectPointOptions } from "./PromptOptions";
import { PromptDistendResult, PromptEntityResult, PromptPointResult, PromptRectResult, PromptResult, PromptSsgetResult } from './PromptResult';
import { SelectControls } from './SelectControls';
import { SelectSet } from './SelectSet';
import { TransformServicess } from './TranstrolControl/TransformServices';
import { UCSServices } from './UCSServices';
export declare class Editor {
    MouseCtrl: MouseControls;
    KeyCtrl: KeyBoardControls;
    SelectCtrl: SelectControls;
    App: ApplicationService;
    InputState: InputState;
    CommandStore: CommandStore;
    GetPointServices: GetPointServices;
    GetDistanceServices: GetDistanceServices;
    GetRectPointServices: GetRectPointServices;
    GetEntitytServices: GetEntityServices;
    SnapDragServices: GripDragServices;
    TransCtrl: TransformServicess;
    UcsServices: UCSServices;
    MaskManage: MaskManage;
    ModalManage: ModalManage;
    CommandInput: CommandInputManage;
    SsgetServices: SsgetServiecs;
    CameraState: CameraStateManage;
    TaskState: TaskStateManage;
    AxisMode: AxisModeManage;
    KeywordsServices: GetKeyWordsServices;
    ContextMenuServices: ContextMenuServices;
    InteractiveServices: EditorService[];
    GetStringService: GetStringService;
    SelectSetIndex: number;
    LastSelectSet: SelectSet[];
    constructor(app: ApplicationService);
    /**
     * 在命令行输出一行提示信息.
     */
    Prompt(msg: string, type?: LogType, entity?: Entity[]): void;
    InteractionPrompt(info: MsgInfo[], type?: LogType): void;
    get UCSMatrix(): Matrix4;
    get UCSMatrixInv(): Matrix4;
    set UCSMatrix(m: Matrix4);
    SetUCSLookAt(viewDir: Vector3): void;
    InputEvent(inputData: string): void;
    Cancel(): void;
    GetPoint(prompt?: GetPointPrompt): Promise<PromptPointResult>;
    GetDistance(prompt?: GetDistendPrompt): Promise<PromptDistendResult>;
    GetRectPoint(prompt?: PromptRectPointOptions): Promise<PromptRectResult>;
    GetAngle(prompt?: GetDistendPrompt): Promise<PromptDistendResult>;
    GetKeyWords(prompt: GetKeyWordPrommpt): Promise<PromptResult>;
    GetString(prompt: GetStringPrompt): Promise<PromptResult>;
    GetEntity(prompt?: GetEntityPrompt): Promise<PromptEntityResult>;
    GetSelection(prompt?: GetSelectionPrompt): Promise<PromptSsgetResult>;
    /**
     * 设置当前的选择实体
     */
    SetSelection(ens: (Object3D | Entity)[]): void;
    AddSelection(ens: (Object3D | Entity)[]): void;
    AddLastSelectSet(): void;
    UpdateScreen(): void;
}
export interface EditorService {
    IsReady: boolean;
    Doit: (e: MouseEvent) => Promise<boolean>;
    OnMouseUp?: (e: MouseEvent) => void;
    Cancel: () => void;
}
//# sourceMappingURL=Editor.d.ts.map