import { IntrospectedEnum } from "../gir.js";
import { IntrospectedClass, IntrospectedBaseClass, IntrospectedInterface } from "../gir/class.js";
import { IntrospectedCallback, IntrospectedFunctionParameter, IntrospectedFunction, IntrospectedClassFunction, IntrospectedStaticClassFunction, IntrospectedVirtualClassFunction } from "../gir/function.js";
import { NSRegistry } from "../gir/registry.js";
import { GirVisitor } from "../visitor.js";
export declare class GenericVisitor extends GirVisitor {
    registry: NSRegistry;
    inferGenerics: boolean;
    constructor(registry: NSRegistry, inferGenerics: boolean);
    visitCallback: (node: IntrospectedCallback) => IntrospectedCallback;
    visitClass: (node: IntrospectedClass) => IntrospectedClass;
    visitInterface: (node: IntrospectedInterface) => IntrospectedInterface;
    visitBaseClass: <T extends IntrospectedBaseClass>(_node: T) => T;
    visitParameter: (node: IntrospectedFunctionParameter) => IntrospectedFunctionParameter;
    visitFunction: (node: IntrospectedFunction) => IntrospectedFunction;
    private generifyStandaloneClassFunction;
    visitStaticClassFunction: (node: IntrospectedStaticClassFunction) => IntrospectedStaticClassFunction;
    visitClassFunction: <T extends IntrospectedBaseClass | IntrospectedEnum>(node: IntrospectedClassFunction<T>) => IntrospectedClassFunction<T>;
    visitVirtualClassFunction: (node: IntrospectedVirtualClassFunction) => IntrospectedClassFunction<IntrospectedBaseClass>;
}
