import { PptxElement } from 'pptx-viewer-core'; import { ConnectorEndpointKind, ResizeHandleId, ShapeAdjustmentHandleDescriptor, SnapLine } from 'pptx-viewer-shared'; import { EditorControllerDeps } from './editor-controller-deps'; import { EditorMarqueeRect } from './editor-selection-gestures'; import { SelectionInteractivity } from './editor-selection-interactivity'; import { EditorState } from './editor-state.svelte'; export type { EditorControllerDeps } from './editor-controller-deps'; export declare class EditorController { #private; snapLines: readonly SnapLine[]; editingId: string | null; marquee: EditorMarqueeRect | null; constructor(editor: EditorState, deps: EditorControllerDeps); /** The elements the pointer acts on (slide, or master/layout), for overlays. */ get activeElements(): PptxElement[]; get overlayBox(): import('./types').OverlayBox | null; /** * Which selection chrome the authored `a:spLocks` still permit, plus the * shape-adjustment descriptor. The overlay only ever sees an `OverlayBox`, * so the element-level verdict is computed here and passed down as a prop. */ get interactivity(): SelectionInteractivity; get editing(): boolean; get selectionCount(): number; get editingElement(): PptxElement | undefined; /** True when editing owns the keyboard (a selection or inline edit is live). */ capturesKeyboard(): boolean; onStagePointerDown: (event: PointerEvent) => void; onStagePointerMove: (event: PointerEvent) => void; onStageDblClick: (event: MouseEvent) => void; /** Select the right-clicked element and expose the edit context menu. */ onStageContextMenu: (event: MouseEvent) => void; onHandlePointerDown: (handle: ResizeHandleId, event: PointerEvent) => void; onRotatePointerDown: (event: PointerEvent) => void; onAdjustPointerDown: (event: PointerEvent, descriptor: ShapeAdjustmentHandleDescriptor) => void; /** Live connector-endpoint drag position in SLIDE px, or null when idle. */ connectorEndpointDrag: { kind: ConnectorEndpointKind; x: number; y: number; } | null; /** The selected connector, when exactly one connector is selected. */ get selectedConnector(): PptxElement | null; onConnectorEndpointPointerDown: (kind: ConnectorEndpointKind, event: PointerEvent) => void; onKeyDown: (event: KeyboardEvent) => void; /** Open the inline text editor over `id` when the element carries text. */ enterInlineEdit(id: string): void; /** * Mirror the in-progress inline text to collaborators. Touches no editor * state or history: the commit path stays the single source of truth. */ previewInline(id: string, text: string): void; /** Commit the inline editor's text onto the element and close it. */ commitInline(id: string, text: string): void; /** Close the inline editor without further mutation. */ closeInline(): void; /** Tear down window listeners (component destroy). */ destroy(): void; } //# sourceMappingURL=editor-controller.svelte.d.ts.map