import { Node, Program } from 'typescript';
import { DefaultConverter } from '../../impl/converters/node-converters/default.converter';
import { ConvertContext } from './convert.context';
import { ConvertedItem, NamedConvertedItem, TypeKind } from './models';
import { NodeConverter } from './node.converter';
export declare class Converter {
    private converters;
    defaultConverter: DefaultConverter;
    nodeFilter?: (node: Node) => boolean;
    registerConverters(converters: {
        [kind: number]: NodeConverter[];
    }, { replace }: {
        replace?: boolean;
    }): void;
    convert(context: ConvertContext, program: Program): Map<TypeKind, NamedConvertedItem[]> | undefined;
    convertNode(context: ConvertContext, node: Node, withDefault?: boolean): ConvertedItem | undefined;
    convertRecursive(context: ConvertContext, node: Node): void;
}
