// Auto-generated TypeScript definitions for WASM module
// Generated by build script

export interface WASMExports {
  memory: WebAssembly.Memory;
  init(): void;
  get_version(): string;
  has_simd_support(): boolean;
  
  // Runtime features
  RuntimeFeatures: {
    new(): RuntimeFeatures;
  };
  
  // Swarm class
  RuvSwarm: {
    new(config: any): RuvSwarm;
  };
  
  // Agent class
  JsAgent: {
    readonly prototype: JsAgent;
  };
  
  // Utility functions
  console_log(message: string): void;
  console_error(message: string): void;
  console_warn(message: string): void;
  format_js_error(error: any): string;
  get_wasm_memory_usage(): bigint;
  
  // Array conversion utilities
  js_array_to_vec_f32(array: any): Float32Array;
  vec_f32_to_js_array(vec: Float32Array): any;
}

export interface RuntimeFeatures {
  readonly simd_available: boolean;
  readonly threads_available: boolean;
  readonly memory_limit: bigint;
  get_features_json(): string;
}

export interface RuvSwarm {
  readonly name: string;
  readonly agent_count: number;
  readonly max_agents: number;
  spawn(config: any): Promise<JsAgent>;
  orchestrate(task: any): Promise<any>;
  get_agents(): string[];
  get_status(): any;
}

export interface JsAgent {
  readonly id: string;
  readonly agent_type: string;
  readonly status: string;
  readonly tasks_completed: number;
  execute(task: any): Promise<any>;
  get_metrics(): any;
  get_capabilities(): string[];
  reset(): void;
}
