import type { AnyNodeId, BlockTopology, SceneApi } from '@pascal-app/core'; import { type SelectionAffordanceProps } from '@pascal-app/editor'; import { type Dispatch, type MutableRefObject, type SetStateAction } from 'react'; import type { Camera, Object3D } from 'three'; import { Vector2 } from 'three'; import { type BlockCommand, type BlockSelection } from './commands.js'; import type { BlockSfxAction } from './interaction-sfx.js'; import { type BlockExtrudeAxis, type BlockModalFaceOperation } from './modal-face-operation.js'; import { type BlockModalFeedbackMode } from './modal-transform.js'; type StateSetter = Dispatch>; export type UseBlockFaceOperationOptions = { beginInputDrag: SelectionAffordanceProps['interactionApi']['beginInputDrag']; camera: Camera; cancelRef: MutableRefObject<(() => void) | null>; canvas: HTMLCanvasElement; closeToolbar: () => void; commit: (baseTopology: BlockTopology, command: BlockCommand, label: string) => boolean; displayTopology: BlockTopology; extent: number; lastPointerClientRef: MutableRefObject; mode: BlockSelection['mode']; nodeId: AnyNodeId; ownsEditSession: () => boolean; playSfx: (action: BlockSfxAction) => void; sceneApi: Pick; selectedIds: string[]; selection: BlockSelection; setActiveFaceOperation: StateSetter; setError: StateSetter; setFaceOperationAxis: StateSetter; setFaceOperationValue: StateSetter; setModalFeedbackMode: StateSetter; setPreviewTopology: StateSetter; setTransformNumericInput: StateSetter; target: Object3D; }; export declare function useBlockFaceOperation({ beginInputDrag, camera, cancelRef, canvas, closeToolbar, commit, displayTopology, extent, lastPointerClientRef, mode, nodeId, ownsEditSession, playSfx, sceneApi, selectedIds, selection, setActiveFaceOperation, setError, setFaceOperationAxis, setFaceOperationValue, setModalFeedbackMode, setPreviewTopology, setTransformNumericInput, target, }: UseBlockFaceOperationOptions): (operation: BlockModalFaceOperation) => boolean; export {}; //# sourceMappingURL=use-block-face-operation.d.ts.map