/**
 * @typedef {Readonly<[any[], Iterator<any>]>} ParserState
 */
export class ParseError extends Error {
    /**
     * @param {string} message
     * @param {ParserState} state
     * @param {Error} [cause]
     */
    constructor(message: string, state: ParserState, cause?: Error);
    state: readonly [any[], Iterator<any, any, any>];
}
export class State extends Tuple {
    static from(values: any): State;
    constructor(remaining: any, read?: any[]);
    next(): any;
    [Clone](): Readonly<State>;
}
export function state(remaining: any, read: any): State;
export const parse: any;
export const parseAll: any;
export type ParserState = Readonly<[any[], Iterator<any>]>;
import { Tuple } from './tuple.js';
import { Clone } from './clone.js';