import { DefinitionRules, GrammarRule } from "../parser/grammarTypes";
export type ResultFailed<E> = {
    success: false;
    error: E;
};
export type ResultSuccess<R = {}> = R & {
    success: true;
};
export type Result<R = {}, E = string> = ResultSuccess<R> | ResultFailed<E>;
export type Cursor = {
    ln: number;
    col: number;
};
export type Position = {
    start: Cursor;
    end: Cursor;
};
export type PhraseKind = "chars" | "word" | "number";
/**
 * Assert that something will never happen. Useful in switch statements to check you've covered all cases
 */
export declare function assertNever(x: never): never;
export declare function getRules(ruleReference: DefinitionRules): GrammarRule[];
