import type { HighlightTokenClass, TokenRange } from '../core.js';
export type Pattern = readonly [
    regex: RegExp,
    className: HighlightTokenClass | ((match: RegExpExecArray) => HighlightTokenClass),
    group?: number
] | ((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>, ranges?: Array<TokenRange>): 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;
