import { GbsWarning } from './exceptions';
import { Input, SourceReader } from './reader';
import { Token } from './token';
import { ASTDef } from './ast';
export declare class Lexer {
    private _multifileReader;
    private _reader;
    private _warnings;
    private _delimiterStack;
    private _pendingAttributes;
    private _languageOptions;
    constructor(input: Input);
    nextToken(): Token;
    warnings(): GbsWarning[];
    _findNextToken(): boolean;
    _readStringWhile(condition: Function): string;
    _readStringConstant(): Token;
    _readSymbol(): Token;
    _ignoreWhitespaceAndComments(): void;
    _ignoreWhitespace(): boolean;
    _ignoreComments(): boolean;
    _startSingleLineComment(): boolean;
    _ignoreSingleLineComment(): void;
    _ignoreMultilineComment(left: string, right: string): void;
    _readInvisiblePragma(left: string, right: string, pragmaDelim: string): string[];
    _readInvisibleStringUntilDelimiter(delimiter: string): string;
    _evaluatePragma(startPos: SourceReader, pragma: string[]): void;
    _emitWarning(startPos: SourceReader, endPos: SourceReader, reason: string, args: any[]): void;
    _checkBalancedDelimiters(token: Token): void;
    getPendingAttributes(): Record<string, ASTDef>;
    setAttribute(key: string, value: any): void;
    getLanguageOptions(): string[];
    addLanguageOption(option: string): void;
}
//# sourceMappingURL=lexer.d.ts.map