// Brick Module Framework - Core Library
// This file provides TypeScript type definitions for the Swift DSL

export type { BrickModuleInterface, BrickModuleSpec } from "./BrickModule";
// Main API exports
export { default as BrickModule } from "./BrickModule";
/**
 * Error types for Brick modules
 */
export class BrickModuleError extends Error {
  constructor(
    message: string,
    public code: string = "GRANITE_ERROR",
    public moduleName?: string,
    public methodName?: string
  ) {
    super(message);
    this.name = "BrickModuleError";
  }
}

/**
 * Configuration interface for brick-codegen
 */
export interface BrickCodegenConfig {
  outputIos?: string;
  outputAndroid?: string;
  cacheDir?: string;
  incremental?: boolean;
  watch?: boolean;
  excludeModules?: string[];
  typeCheck?: boolean;
  verbose?: boolean;
  newArchOnly?: boolean;
  oldArchOnly?: boolean;
  dev?: boolean;
}
