import { OpenAPIV3_1 } from "openapi-types";
import { BaseApiConverterNode, BaseApiConverterNodeContext } from "../BaseApiConverter.node";
import { FernRegistry } from "../client/generated";
export declare abstract class BaseOpenApiV3_1ConverterNodeContext extends BaseApiConverterNodeContext {
    abstract document: OpenAPIV3_1.Document;
    abstract generatedTypes: Record<FernRegistry.TypeId, FernRegistry.api.latest.TypeDefinition>;
}
export type BaseOpenApiV3_1ConverterNodeConstructorArgs<Input> = {
    input: Input;
    context: BaseOpenApiV3_1ConverterNodeContext;
    readonly accessPath: string[];
    readonly pathId: string | string[];
};
export type BaseOpenApiV3_1ConverterExampleArgs = {
    includeOptionals: boolean;
    override: unknown;
};
export declare abstract class BaseOpenApiV3_1ConverterNode<Input, Output> extends BaseApiConverterNode<Input, Output> {
    protected readonly context: BaseOpenApiV3_1ConverterNodeContext;
    protected readonly accessPath: string[];
    protected readonly pathId: string | string[];
    constructor({ input, context, accessPath, pathId, }: BaseOpenApiV3_1ConverterNodeConstructorArgs<Input>);
    abstract parse(...additionalArgs: unknown[]): void;
    safeParse(...additionalArgs: unknown[]): void;
}
export declare abstract class BaseOpenApiV3_1ConverterNodeWithExample<Input, Output> extends BaseOpenApiV3_1ConverterNode<Input, Output> {
    abstract example(args: BaseOpenApiV3_1ConverterExampleArgs): unknown | undefined;
}
export type BaseOpenApiV3_1ConverterNodeWithTrackingConstructorArgs<Input> = BaseOpenApiV3_1ConverterNodeConstructorArgs<Input> & {
    seenSchemas: Set<OpenAPIV3_1.ReferenceObject["$ref"]>;
};
export declare abstract class BaseOpenApiV3_1ConverterNodeWithTracking<Input, Output> extends BaseOpenApiV3_1ConverterNodeWithExample<Input, Output> {
    protected readonly seenSchemas: Set<OpenAPIV3_1.ReferenceObject["$ref"]>;
    constructor(args: BaseOpenApiV3_1ConverterNodeWithTrackingConstructorArgs<Input>);
}
//# sourceMappingURL=BaseOpenApiV3_1Converter.node.d.ts.map