import type { HighlightTokenClass, TokenRange } from '../core.js';
export type Pattern = {
    className: HighlightTokenClass | ((match: RegExpExecArray) => HighlightTokenClass);
    group?: number;
    regex: RegExp;
} | {
    collect: (code: string) => ReadonlyArray<TokenRange>;
};
export declare function patternTokenizer(patterns: ReadonlyArray<Pattern>): (code: string) => TokenRange[];
export declare function collectPatternRanges(code: string, patterns: ReadonlyArray<Pattern>, initial?: ReadonlyArray<TokenRange>, occupied?: Uint8Array<ArrayBuffer>): TokenRange[];
export declare function offsetRanges(ranges: ReadonlyArray<TokenRange>, offset: number): {
    start: number;
    end: number;
    className: HighlightTokenClass;
}[];
export declare function addRange(ranges: Array<TokenRange>, occupied: Uint8Array, range: TokenRange): boolean;
