import type { BaseNode } from "../Node.js";
import { MetadataMode } from "../Node.js";
import type { TransformComponent } from "../ingestion/types.js";
export declare abstract class BaseExtractor implements TransformComponent {
    isTextNodeOnly: boolean;
    showProgress: boolean;
    metadataMode: MetadataMode;
    disableTemplateRewrite: boolean;
    inPlace: boolean;
    numWorkers: number;
    abstract extract(nodes: BaseNode[]): Promise<Record<string, any>[]>;
    transform(nodes: BaseNode[], options?: any): Promise<BaseNode[]>;
    /**
     *
     * @param nodes Nodes to extract metadata from.
     * @param excludedEmbedMetadataKeys Metadata keys to exclude from the embedding.
     * @param excludedLlmMetadataKeys Metadata keys to exclude from the LLM.
     * @returns Metadata extracted from the nodes.
     */
    processNodes(nodes: BaseNode[], excludedEmbedMetadataKeys?: string[] | undefined, excludedLlmMetadataKeys?: string[] | undefined): Promise<BaseNode[]>;
}
