import Span from './Span';
export default class CharacterStream {
    source: string;
    end: number;
    index: number;
    spanStart: number;
    constructor(source: string, start?: number, end?: number);
    /**
     * 截取字符串
     *
     * @param startIndex 开始位置
     * @param endIndex   结束位置
     */
    substring(startIndex: number, endIndex: number): string;
    /**
     * 是否有下一个字符
     **/
    hasMore(): boolean;
    /**
     * 根据开始位置、结束位置返回Span
     */
    getSpan(start: number, end: number): Span;
    /**
     * 返回下一个字符
     **/
    consume(): string;
    /**
     * 返回是否是以给定的字符串开头
     */
    match(needle: string, consume: boolean): boolean;
    /**
     * 匹配任意字符串
     *
     * @param strs 任意字符串
     * @return
     */
    matchAny(consume: boolean, ...strs: string[]): boolean;
    /**
     * 返回是否是数字
     **/
    matchDigit(consume: boolean): boolean;
    /**
     * 跳过一行
     */
    skipLine(): void;
    /**
     * 直到给定的字符串之前全部跳过
     */
    skipUntil(chars: string): boolean;
    /**
     * 跳过空白字符
     */
    skipWhiteSpace(): void;
    /**
     * 记录当前位置为Span的开始位置
     **/
    startSpan(): void;
    /**
     * 根据当前位置 - offset 返回 Span
     */
    endSpan(offset?: number): Span;
    endSpan1(start: number, end: number): Span;
    /**
     * 返回当前位置
     **/
    getPosition(): number;
    /**
     * 重置当前位置
     */
    reset(position: number): void;
}
