import type { Logger } from "@fern-api/logger";
import { ErrorCollector } from "./ErrorCollector";
/**
 * Base context class for API converter nodes.
 * Provides logging and error collection capabilities.
 */
export declare abstract class BaseApiConverterNodeContext {
    abstract readonly logger: Logger;
    readonly errors: ErrorCollector;
}
/**
 * APIConverterNode is responsible for converting API concepts between different API definition formats.
 * It takes an input from one API definition format and transforms it into an equivalent output
 * in another format. For example, it can convert an OpenAPI operation into an FDR endpoint definition,
 * preserving the semantic meaning while adapting to the target format's structure.
 *
 * @typeparam Input - The type from the source format
 * @typeparam Output - The type from the target format
 */
export declare abstract class BaseApiConverterNode<Input, Output> {
    protected readonly input: Input;
    protected readonly context: BaseApiConverterNodeContext;
    constructor(input: Input, context: BaseApiConverterNodeContext);
    /**
     * @returns The converted API definition in the target output format
     */
    abstract convert(): Output | undefined;
    errors(): ErrorCollector.ValidationError[];
    warnings(): ErrorCollector.ValidationWarning[];
}
//# sourceMappingURL=BaseApiConverter.node.d.ts.map