import { HeaderEntry, MoveHistory } from './pgnTypes';
export declare enum PgnTokenType {
    EndOfFile = "",
    Newline = "\n",
    Whitespace = " ",
    CommentStart = "{",
    CommentEnd = "}",
    TagPairStart = "[",
    TagPairEnd = "]",
    RavStart = "(",
    RavEnd = ")",
    ExpansionStart = "<",
    ExpansionEnd = ">",
    LineEscape = "%",
    Quote = "\"",
    CommentToEOL = ";",
    FullStop = ".",
    Asterisks = "*",
    NAG = "$",
    SymbolExt = "-extra",
    SymbolChar = "alpha-num",
    Unknown = "unknown"
}
export declare class PgnDataCursor {
    private readonly _data;
    private readonly _validLength;
    private _lineOffset;
    private _line;
    private _offset;
    constructor(data: string, index?: number, length?: number);
    throwError(text: string): any;
    position(): number;
    save(): any;
    restore(saveData: any): void;
    peek(): string;
    peekExact(match: string): string | null;
    peekToken(): PgnTokenType;
    isEOF(): boolean;
    seek(relativeOffset: number): void;
    read(): string;
    readFromPrevious(position: number): string;
    readWhile(test: () => boolean): string;
    private readonly Readers;
    readSymbol(): any;
    readAll(char: string, limit?: number): number;
    readNumber(): number | null;
    readString(): string;
    skipCommentsFrom(comments?: string[]): boolean;
    skipWhitespace(skipNewline?: boolean, comments?: string[]): void;
    readTagPair(): HeaderEntry | null;
    private readonly pieceSAN;
    readMoveText(): MoveHistory | null;
    private _readMoveText;
    isMoveStop(token: PgnTokenType): boolean;
}
export default PgnDataCursor;
