import { Logger } from '@n8n/backend-common'; import type { ICredentialType, ICredentialTypeData, INodeCredentialDescription, INodeType, INodeTypeData, INodeTypeDescription, INodeTypeNameVersion, IVersionedNodeType, KnownNodesAndCredentials } from 'n8n-workflow'; export type Types = { nodes: INodeTypeDescription[]; credentials: ICredentialType[]; }; export declare abstract class DirectoryLoader { readonly directory: string; protected excludeNodes: string[]; protected includeNodes: string[]; isLazyLoaded: boolean; loadedNodes: INodeTypeNameVersion[]; nodeTypes: INodeTypeData; credentialTypes: ICredentialTypeData; known: KnownNodesAndCredentials; types: Types; private typesReleased; readonly nodesByCredential: Record; protected readonly logger: Logger; protected removeNonIncludedNodes: boolean; constructor(directory: string, excludeNodes?: string[], includeNodes?: string[]); abstract packageName: string; abstract loadAll(): Promise; reset(): void; releaseTypes(): void; ensureTypesLoaded(): Promise; protected resolvePath(file: string): string; protected extractNodeTypes(fullNodeTypes: string[], packageName: string): string[]; private loadClass; loadNodeFromFile(filePath: string, packageVersion?: string): void; getNode(nodeType: string): import("n8n-workflow").LoadedClass; loadCredentialFromFile(filePath: string): void; getCredential(credentialType: string): import("n8n-workflow").LoadedClass; getCredentialsForNode(object: IVersionedNodeType | INodeType): INodeCredentialDescription[]; getVersionedNodeTypeAll(object: IVersionedNodeType | INodeType): INodeType[]; private getCodex; private addCodex; private addLoadOptionsMethods; private applySpecialNodeParameters; private getIconPath; private fixIconPaths; static applyDeclarativeNodeOptionParameters(nodeType: INodeType): void; private unloadAll; }