import { RootTransformer } from '../index';
import TokenProcessor from '../TokenProcessor';
import { Transformer } from './Transformer';
import IdentifierReplacer from './IdentifierReplacer';
export default class JSXTransformer implements Transformer {
    readonly rootTransformer: RootTransformer;
    readonly tokens: TokenProcessor;
    readonly identifierReplacer: IdentifierReplacer;
    constructor(rootTransformer: RootTransformer, tokens: TokenProcessor, identifierReplacer: IdentifierReplacer);
    preprocess(): void;
    process(): boolean;
    getPrefixCode(): string;
    getSuffixCode(): string;
    /**
     * Produce the props arg to createElement, starting at the first token of the
     * props, if any.
     */
    processProps(): void;
    processStringPropValue(): void;
    /**
     * Process the first part of a tag, before any props.
     */
    processTagIntro(): void;
    processChildren(): void;
    processChildTextElement(): void;
    processJSXTag(): void;
}
