import { FeatureCollection, Polygon, SimpleGeometry, Position, SimpleFeatureCollection, SimpleFeature } from "../utils/geojson-types.js"; import { ClickEvent, Pick, PointerMoveEvent, StartDraggingEvent, StopDraggingEvent } from "../edit-modes/types.js"; import { ImmutableFeatureCollection } from "../edit-modes/immutable-feature-collection.js"; export type EditHandleType = 'existing' | 'intermediate' | 'snap'; export type EditHandle = { position: Position; positionIndexes: number[]; featureIndex: number; type: EditHandleType; }; export type EditAction = { updatedData: SimpleFeatureCollection; editType: string; featureIndexes: number[]; editContext: any; }; export declare class ModeHandler { featureCollection: ImmutableFeatureCollection; _tentativeFeature: SimpleFeature | null | undefined; _modeConfig: any; _selectedFeatureIndexes: number[]; _clickSequence: Position[]; constructor(featureCollection?: SimpleFeatureCollection); getFeatureCollection(): FeatureCollection; getImmutableFeatureCollection(): ImmutableFeatureCollection; getSelectedFeature(): SimpleFeature | null | undefined; getSelectedGeometry(): SimpleGeometry | null | undefined; getSelectedFeaturesAsFeatureCollection(): SimpleFeatureCollection; setFeatureCollection(featureCollection: SimpleFeatureCollection): void; getModeConfig(): any; setModeConfig(modeConfig: any): void; getSelectedFeatureIndexes(): number[]; setSelectedFeatureIndexes(indexes: number[]): void; getClickSequence(): Position[]; resetClickSequence(): void; getTentativeFeature(): SimpleFeature | null | undefined; _setTentativeFeature(tentativeFeature: SimpleFeature | null | undefined): void; /** * Returns a flat array of positions for the given feature along with their indexes into the feature's geometry's coordinates. * * @param featureIndex The index of the feature to get edit handles */ getEditHandles(picks?: Array>, mapCoords?: Position): EditHandle[]; getCursor({ isDragging }: { isDragging: boolean; }): string; isSelectionPicked(picks: Pick[]): boolean; getAddFeatureAction(geometry: SimpleGeometry): EditAction; getAddManyFeaturesAction(featureCollection: FeatureCollection): EditAction; getAddFeatureOrBooleanPolygonAction(geometry: Polygon): EditAction | null | undefined; handleClick(event: ClickEvent): EditAction | null | undefined; handlePointerMove(event: PointerMoveEvent): { editAction: EditAction | null | undefined; cancelMapPan: boolean; }; handleStartDragging(event: StartDraggingEvent): EditAction | null | undefined; handleStopDragging(event: StopDraggingEvent): EditAction | null | undefined; } export declare function getPickedEditHandle(picks: any[] | null | undefined): EditHandle | null | undefined; export declare function getIntermediatePosition(position1: Position, position2: Position): Position; export declare function getEditHandlesForGeometry(geometry: SimpleGeometry, featureIndex: number, editHandleType?: EditHandleType): EditHandle[]; //# sourceMappingURL=mode-handler.d.ts.map