import TokenProcessor from "../TokenProcessor";
import RootTransformer from "./RootTransformer";
import Transformer from "./Transformer";
export default class TypeScriptTransformer extends Transformer {
    readonly rootTransformer: RootTransformer;
    readonly tokens: TokenProcessor;
    constructor(rootTransformer: RootTransformer, tokens: TokenProcessor);
    process(): boolean;
    /**
     * This is either a negation operator or a non-null assertion operator. If it's a non-null
     * assertion, get rid of it.
     */
    isNonNullAssertion(): boolean;
    processEnum(isExport?: boolean): void;
    /**
     * Rather than try to compute the actual enum values at compile time, we just create variables for
     * each one and let everything evaluate at runtime. There's some additional complexity due to
     * handling string literal names, including ones that happen to be valid identifiers.
     */
    processEnumBody(enumName: string): void;
}
