import { BrickModule, BrickModuleInterface, BrickModuleSpec } from "./BrickModule.js";
import { BrickError } from "./BrickError.js";
import { Any, AnyObject } from "./types.js";

//#region src/index.d.ts

/**
 * Error types for Brick modules
 * @deprecated Use BrickError instead
 */
declare class BrickModuleError extends Error {
  code: string;
  moduleName?: string | undefined;
  methodName?: string | undefined;
  constructor(message: string, code?: string, moduleName?: string | undefined, methodName?: string | undefined);
}
/**
 * Configuration interface for brick-codegen
 */
interface BrickCodegenConfig {
  outputIos?: string;
  outputAndroid?: string;
  cacheDir?: string;
  incremental?: boolean;
  watch?: boolean;
  excludeModules?: string[];
  typeCheck?: boolean;
  verbose?: boolean;
  newArchOnly?: boolean;
  oldArchOnly?: boolean;
  dev?: boolean;
}
//#endregion
export { Any, AnyObject, BrickCodegenConfig, BrickError, BrickModule, BrickModuleError, type BrickModuleInterface, type BrickModuleSpec };