import * as ts from "typescript";
import { INodeAliaser } from "../../nodes/aliaser";
import { BudgieLine } from "../../output/budgieLine";
export declare type IRecurseOntoNode = (node: ts.Node) => string | BudgieLine | undefined;
export declare abstract class RecursiveAliaser implements INodeAliaser {
    protected readonly recurseOntoNode: IRecurseOntoNode;
    protected readonly typeChecker: ts.TypeChecker;
    constructor(typeChecker: ts.TypeChecker, recurseOntoNode: IRecurseOntoNode);
    abstract getFriendlyTypeName(node: ts.Node): string | BudgieLine | undefined;
}
