import Pattern from "./patterns/Pattern";
import Node from "./ast/Node";
import CursorHistory from "./CursorHistory";
import ParseError from "./patterns/ParseError";
export default class Cursor {
    text: string;
    index: number;
    length: number;
    history: CursorHistory;
    isInErrorState: boolean;
    constructor(text: string);
    assertValidity(): void;
    startRecording(): void;
    stopRecording(): void;
    get parseError(): ParseError | null;
    get lastMatch(): import("./CursorHistory").Match;
    throwError(parseError: ParseError): void;
    addMatch(pattern: Pattern, astNode: Node): void;
    resolveError(): void;
    hasUnresolvedError(): boolean;
    isNullOrEmpty(value: string | null): boolean;
    hasNext(): boolean;
    hasPrevious(): boolean;
    next(): void;
    previous(): void;
    mark(): number;
    moveToMark(mark: number): void;
    moveToBeginning(): void;
    moveToEnd(): void;
    getChar(): string;
    getIndex(): number;
    setIndex(index: number): void;
    isAtBeginning(): boolean;
    isAtEnd(): boolean;
    lastIndex(): number;
    didSuccessfullyParse(): boolean;
}
