export interface Token {
    type: string;
    value: string;
    start: number;
    end: number;
    column: number;
    line: number;
    op?: boolean;
    template?: boolean;
}
export declare class Lexer {
    static isAlpha(c: string): boolean;
    static isNumeric(c: string): boolean;
    static isWhitespace(c: string): boolean;
    static isNewline(c: string): boolean;
    static isIdentifierChar(c: string): boolean;
    static isReservedChar(c: string): boolean;
    static isValidCSSClassChar(c: string): boolean;
    static isValidCSSIDChar(c: string): boolean;
    static isValidSingleQuoteStringStart(tokens: Token[]): boolean;
    static tokenize(source: string, template?: boolean): Tokens;
}
export declare class Tokens {
    private tokens;
    private consumed;
    private source;
    private lastConsumed?;
    constructor(tokens: Token[], consumed: number, source: string);
    hasMore(): boolean;
    token(n?: number, dontIgnoreWhitespace?: boolean): Token;
    currentToken(): Token;
    consumeToken(): Token;
    consumeWhitespace(): void;
    lastMatch(): Token | undefined;
    matchToken(value: string, type?: string): Token | null;
    matchTokenType(...types: string[]): Token | null;
    matchOpToken(value: string): Token | null;
    requireToken(value: string, type?: string): Token;
    requireTokenType(type: string): Token;
    requireOpToken(value: string): Token;
    consumeUntil(value?: string, type?: string): Token[];
    consumeUntilWhitespace(): Token[];
    lastWhitespace(): string;
    raiseError(message: string): never;
    static sourceFor(tokens: Token[]): string;
    static lineFor(token: Token): string;
    static positionString(token: Token): string;
}
//# sourceMappingURL=tokenizer.d.ts.map