export interface KeyResult {
    path: string[];
    nextIndex: number;
}
export interface SourceOptions {
    disableCheckReplacementCharacter?: boolean;
}
export declare class Source {
    private readonly source;
    private nextPos;
    private end;
    private readonly disableCheckReplacementCharacter;
    private readonly RE_INVALID_CHARACTER;
    lineNum: number;
    line: string;
    constructor(source: string, options?: SourceOptions);
    next(): boolean;
    assertWhitespaceOrComment(offset: number): string | undefined;
    assertValidString(str: string, offset: number): void;
    getKey(offset: number, re: RegExp): KeyResult | null;
    unescapeString(str: string, offset: number): string;
}
