import { Options } from "../options";
import { TokContext } from "./context";
import { Token } from "./index";
import { TokenType } from "./types";
export declare type Scope = {
    isFunctionScope: boolean;
    startTokenIndex: number;
    endTokenIndex: number;
};
export declare type StateSnapshot = {
    potentialArrowAt: number;
    inGenerator: boolean;
    inType: boolean;
    noAnonFunctionType: boolean;
    inPropertyName: boolean;
    tokensLength: number;
    scopesLength: number;
    pos: number;
    type: TokenType;
    value: any;
    start: number;
    end: number;
    isType: boolean;
    lastTokEnd: number;
    context: Array<TokContext>;
    exprAllowed: boolean;
};
export default class State {
    init(options: Options, input: string): void;
    input: string;
    potentialArrowAt: number;
    inGenerator: boolean;
    inType: boolean;
    noAnonFunctionType: boolean;
    inPropertyName: boolean;
    tokens: Array<Token>;
    scopes: Array<Scope>;
    pos: number;
    type: TokenType;
    value: any;
    start: number;
    end: number;
    isType: boolean;
    lastTokEnd: number;
    context: Array<TokContext>;
    exprAllowed: boolean;
    snapshot(): StateSnapshot;
    restoreFromSnapshot(snapshot: StateSnapshot): void;
}
