export declare type TokenContext = 'block' | 'parens' | 'brackets' | 'object' | 'class' | 'jsxTag' | 'jsxChild' | 'jsxExpression' | 'interpolatedExpression' | 'switchCaseCondition';
export declare type TokenType = {
    label: string;
};
export declare type Token = {
    type: TokenType;
    start: number;
    end: number;
    value: any;
    contextName?: TokenContext;
    contextStartIndex?: number;
};
export default class TokenProcessor {
    readonly code: string;
    readonly tokens: Array<Token>;
    private resultCode;
    private tokenIndex;
    constructor(code: string, tokens: Array<Token>);
    reset(): void;
    matchesAtIndex(index: number, tagLabels: Array<string>): boolean;
    matchesNameAtIndex(index: number, name: string): boolean;
    matches(tagLabels: Array<string>): boolean;
    matchesName(name: string): boolean;
    previousWhitespace(): string;
    replaceToken(newCode: string): void;
    replaceTokenTrimmingLeftWhitespace(newCode: string): void;
    removeInitialToken(): void;
    removeToken(): void;
    copyExpectedToken(label: string): void;
    copyToken(): void;
    appendCode(code: string): void;
    currentToken(): Token;
    currentIndex(): number;
    finish(): string;
    isAtEnd(): boolean;
}
