import type { Token } from '../../types/core';
import type { TokenKind } from '../tokenizer';
export interface TokenStreamState {
    tokens: Token[];
    current: number;
}
export interface TokenNavigator {
    advance(): Token;
    peek(): Token;
    previous(): Token;
    check(value: string): boolean;
    match(...values: string[]): boolean;
    matchOperator(operator: string): boolean;
    isAtEnd(): boolean;
    consume(expected: string, message: string): Token;
}
export declare function peekMatches(tokens: Token[], current: number, expected: string): boolean;
export declare function peekMatchesKind(tokens: Token[], current: number, expectedKind: TokenKind): boolean;
export declare function peekAhead(tokens: Token[], current: number, offset?: number): Token;
export declare function isLastToken(tokens: Token[], current: number): boolean;
export declare function remainingTokens(tokens: Token[], current: number): number;
export declare function getTokenAt(tokens: Token[], index: number): Token;
export { isKeyword } from './parsing-helpers';
export declare function findNextToken(tokens: Token[], current: number, value: string): number;
export declare function findNextTokenKind(tokens: Token[], current: number, kind: TokenKind): number;
export declare function getTokensUntil(tokens: Token[], current: number, until: string): Token[];
export declare function matchesSequence(tokens: Token[], current: number, sequence: string[]): boolean;
//# sourceMappingURL=token-helpers.d.ts.map