import * as ts from 'typescript';
import { ScriptBuilder } from './sb';
import { VisitOptions } from './types';
export declare abstract class NodeCompiler<TNode extends ts.Node = ts.Node> {
    abstract readonly kind: TNode extends ts.Node & {
        readonly kind: infer TKind;
    } ? TKind : never;
    abstract visitNode(sb: ScriptBuilder, node: TNode, options: VisitOptions): void;
}
