export interface ModuleSource { type: "local" | "git" | "package" | "local-folder"; id?: string; ignoreCache?: boolean; } export type ModuleInstallCommand = string | string[]; export type ModuleWatchDir = string | string[]; export interface ModuleSourceLocal extends ModuleSource { type: "local"; path: string; main?: string; watchDir?: ModuleWatchDir; installCommand?: ModuleInstallCommand; reloadCommand?: ModuleInstallCommand; } export interface ModuleSourceGit extends ModuleSource { type: "git"; remote: string; branch?: string; commit?: string; installCommand?: ModuleInstallCommand; } export interface ModuleSourcePackage extends ModuleSource { type: "package"; package: string; version: string; } export interface ModuleSourceLocalFolder extends ModuleSource { type: "local-folder"; path: string; watchDir?: ModuleWatchDir; installCommand?: ModuleInstallCommand; reloadCommand?: ModuleInstallCommand; } export interface AntelopeTestConfig { folder?: string; setup?: () => undefined | Partial | Promise>; cleanup?: () => void | Promise; } export interface AntelopeConfig { name: string; cacheFolder?: string; modules?: Record; logging?: AntelopeLogging; envOverrides?: Record; environments?: Record>; test?: AntelopeTestConfig; } export interface ImportOverride { interface: string; source: string; id?: string; } export interface AntelopeModuleConfig { version?: string; source?: ModuleSourceLocal | ModuleSourceGit | ModuleSourcePackage | ModuleSourceLocalFolder; config?: unknown; importOverrides?: ImportOverride[] | Record; disabledExports?: string[]; } export interface AntelopeLogging { enabled?: boolean; moduleTracking?: { enabled?: boolean; includes?: string[]; excludes?: string[]; }; channelFilter?: Record; formatter?: Record; dateFormat?: string; } export interface ConfigContext { env: string; } export type ConfigInput = AntelopeConfig | ((ctx: ConfigContext) => AntelopeConfig | Promise); export declare function defineConfig(input: ConfigInput): ConfigInput;