export interface LoaderConfig { subdirectory: string; excludedFiles: string[]; extensions: string[]; } export declare abstract class BaseLoader { protected readonly directory: string; protected readonly config: LoaderConfig; constructor(config: LoaderConfig, basePath?: string); private resolveDirectory; hasItems(): Promise; protected abstract validateItem(item: any): item is T; protected abstract createInstance(ItemClass: any): T; protected abstract getItemName(item: T): string; loadItems(): Promise; }