import type { Arc2DEntitySpec, Circle2DEntitySpec, ConstraintId, ConstraintSpec, EntityId, EntitySpec, Point2DEntitySpec, ScalarSource, SketchCreateParams, SketchHandle, SketchSnapshot, SketchSolveOptions, SketchSolveResult, SketchToolkitVersionInfo } from './sketch-types'; export interface NativeSketchToolkit { getSessionId?: () => string; getLastError?: () => string; clearLastError?: () => void; createSketch(createParamsJson: string): number; disposeSketch?: (sketchId: number) => void; addEntity(sketchId: number, entitySpecJson: string): number; removeEntity?: (sketchId: number, entityId: number) => void; addConstraint(sketchId: number, constraintSpecJson: string): number; removeConstraint?: (sketchId: number, constraintId: number) => void; setParameter?: (sketchId: number, name: string, valueJson: string) => void; solveSketch?: (sketchId: number, optionsJson: string) => string; getSketchSnapshot(sketchId: number): string; } export interface SketchToolkitWasmModule { SketchToolkitNative: new () => NativeSketchToolkit; } export declare class SketchToolkit { private readonly native; private readonly sessionId; constructor(module: SketchToolkitWasmModule); createSketch(params: SketchCreateParams): SketchHandle; disposeSketch(handle: SketchHandle): void; addEntity(handle: SketchHandle, spec: EntitySpec): EntityId; addPoint(handle: SketchHandle, spec: Omit): EntityId; addLineSegment(handle: SketchHandle, spec: Omit, 'kind'>): EntityId; addCircle(handle: SketchHandle, spec: Omit): EntityId; addArc(handle: SketchHandle, spec: Omit): EntityId; removeEntity(handle: SketchHandle, entityId: EntityId): void; addConstraint(handle: SketchHandle, spec: ConstraintSpec): ConstraintId; removeConstraint(handle: SketchHandle, constraintId: ConstraintId): void; setParameter(handle: SketchHandle, name: string, value: ScalarSource): void; getSketchSnapshot(handle: SketchHandle): SketchSnapshot; solveSketch(handle: SketchHandle, options?: SketchSolveOptions): SketchSolveResult; getVersionInfo(): SketchToolkitVersionInfo; private resolveSketchId; }