/** * Base Resource Class for SolidWorks MCP Implementation * Provides foundation for all SolidWorks resources with state management */ import { z } from 'zod'; export interface ValidationResult { valid: boolean; errors?: Array<{ path: string; message: string; }>; warnings?: Array<{ path: string; message: string; }>; } export interface ResourceState { id: string; type: string; name: string; properties: Record; outputs: Record; metadata: ResourceMetadata; status: ResourceStatus; } export interface ResourceMetadata { createdAt: string; updatedAt: string; createdBy: string; version: number; tags: Record; annotations: Record; solidworksVersion?: string; fileReference?: string; } export declare enum ResourceStatus { PENDING = "pending", CREATING = "creating", CREATED = "created", UPDATING = "updating", DELETING = "deleting", DELETED = "deleted", FAILED = "failed", EXECUTING = "executing", COMPLETED = "completed", UNKNOWN = "unknown" } export interface ResourceDependency { resourceId: string; type: 'hard' | 'soft'; outputRef?: string; } export declare abstract class SolidWorksResource { readonly id: string; readonly name: string; protected _properties: Record; protected _outputs: Record; protected _dependencies: ResourceDependency[]; protected _status: ResourceStatus; protected _metadata: ResourceMetadata; abstract readonly type: string; abstract readonly schema: z.ZodSchema; constructor(id: string, name: string, properties: Record); /** * Validate the resource properties against schema */ validate(): ValidationResult; /** * Convert resource to state representation */ toState(): ResourceState; /** * Restore resource from state */ fromState(state: ResourceState): void; /** * Get resource dependencies */ getDependencies(): ResourceDependency[]; /** * Add a dependency to this resource */ addDependency(dependency: ResourceDependency): void; /** * Get resource outputs */ getOutputs(): Record; /** * Set resource outputs */ setOutputs(outputs: Record): void; /** * Get resource status */ getStatus(): ResourceStatus; /** * Update resource status */ setStatus(status: ResourceStatus): void; /** * Get resource properties */ getProperties(): Record; /** * Update resource properties */ updateProperties(properties: Partial>): ValidationResult; /** * Abstract methods that must be implemented by concrete resources */ abstract execute(api: any): Promise; abstract toVBACode(): string; abstract toMacroCode(): string; abstract getRequiredCapabilities(): string[]; } //# sourceMappingURL=base.d.ts.map