export interface FilePosition {
    offset: number;
    line: number;
    column: number;
}
export interface FileRange {
    start: FilePosition;
    end: FilePosition;
    source: string;
}
export interface LiteralExpectation {
    type: "literal";
    text: string;
    ignoreCase: boolean;
}
export interface ClassParts extends Array<string | ClassParts> {
}
export interface ClassExpectation {
    type: "class";
    parts: ClassParts;
    inverted: boolean;
    ignoreCase: boolean;
}
export interface AnyExpectation {
    type: "any";
}
export interface EndExpectation {
    type: "end";
}
export interface OtherExpectation {
    type: "other";
    description: string;
}
export type Expectation = LiteralExpectation | ClassExpectation | AnyExpectation | EndExpectation | OtherExpectation;
declare class _PeggySyntaxError extends Error {
    static buildMessage(expected: Expectation[], found: string | null): string;
    message: string;
    expected: Expectation[];
    found: string | null;
    location: FileRange;
    name: string;
    constructor(message: string, expected: Expectation[], found: string | null, location: FileRange);
    format(sources: {
        source?: any;
        text: string;
    }[]): string;
}
export interface TraceEvent {
    type: string;
    rule: string;
    result?: any;
    location: FileRange;
}
export interface ParseOptions {
    filename?: string;
    startRule?: "text";
    tracer?: any;
    [key: string]: any;
}
export type ParseFunction = <Options extends ParseOptions>(input: string, options?: Options) => Options extends {
    startRule: infer StartRule;
} ? StartRule extends "text" ? Text : Text : Text;
export declare const parse: ParseFunction;
export declare const PeggySyntaxError: typeof _PeggySyntaxError;
export type PeggySyntaxError = _PeggySyntaxError;
export type Text = any;
export type AnyWord = Jbovla;
export type Jbovla = Pause0 | Cmevla | ["cmavo", string] | ["gismu", string] | ["lujvo", string] | ["fu'ivla", string];
export type Cmevla = ["cmevla", string];
export type Gismu = [LongRafsi, undefined, undefined, PaZeiKarsna, undefined];
export type FuhivlaHead = [
    undefined,
    undefined,
    undefined,
    undefined,
    undefined,
    UnstressedSyllable[]
];
export type FuhivlaTrim = [
    FuhivlaHead,
    Slaka,
    undefined,
    ConsonantalSyllable[]
];
export type GenericFuhivla = [FuhivlaTrim, FinalSyllable];
export type Fuhivla = [string, "-", string, string] | GenericFuhivla;
export type Cmavo = [
    undefined,
    undefined,
    [
        undefined,
        undefined,
        Onset,
        [Nucleus, H][],
        Nucleus
    ] | Y[],
    undefined
];
export type LujvoCore = [[string, "-"][], [string] | [string, "-", string]];
export type AnyFuhivlaRafsi = Fuhivla | FuhivlaRafsi | StressedFuhivlaRafsi;
export type RafsiString = [
    YLessRafsi[],
    (GismuCvvFinalRafsi | [CvcCcvCvv, undefined, undefined, ShortFinalRafsi] | YRafsi | StressedYRafsi | [[CvcCcvCvv, undefined, undefined] | null, InitialPair, Y] | HyRafsi | StressedHyRafsi)
];
export type Zifcme = [
    undefined,
    (Nucleus | Glaide | H | [Zunsna, undefined])[],
    Zunsna,
    undefined
];
export type StressedFuhivlaRafsi = [string, "-", string];
export type FuhivlaRafsi = [string, "-", string];
export type StressedYRafsi = [string, "-", string];
export type YRafsi = [string, "-", string];
export type YLessRafsi = [
    undefined,
    undefined,
    undefined,
    undefined,
    CvcCcvCvv,
    undefined,
    undefined,
    undefined
];
export type StressedHyRafsi = [string, "-", string];
export type HyRafsi = [string, "-", string];
export type Cvc = [Cv, Zunsna];
export type CvcCcv = Cvc | Ccv;
export type Ccv = [InitialPair, PaZeiKarsna];
export type Cvv = [Zunsna, ReZeiKarsna];
export type CvcCcvCvv = CvcCcv | Cvvr;
export type Cvvr = [string, "-", string];
export type GismuCvvFinalRafsi = Gismu | [Cv, undefined, H, undefined, PaZeiKarsna, undefined];
export type ShortFinalRafsi = [
    undefined,
    [
        Zunsna,
        ReZeiKarsna
    ] | Ccv,
    undefined
];
export type UnstressedSyllable = [Slaka, undefined] | ConsonantalSyllable;
export type LongRafsi = [CvcCcv, Zunsna];
export type Cv = [Zunsna, PaZeiKarsna];
export type FinalSyllable = [Onset, undefined, Nucleus, undefined, undefined];
export type Stress = [(Zunsna | Glaide)[], H | null, Y | null, Slaka, Pause];
export type AnySyllable = [Onset, Nucleus, Coda | null] | ConsonantalSyllable;
export type Slaka = [Onset, undefined, Nucleus, Coda | null];
export type ConsonantalSyllable = [Zunsna, undefined, Coda];
export type Coda = [undefined, Zunsna, undefined] | [Syllabic | null, Zunsna | null, undefined];
export type Onset = H | Glaide | Initial;
export type Initial = [
    Affricate | [Sibilant | null, Other | null, Liquid | null],
    undefined,
    undefined
];
export type Other = Pfbgvkx | [T | D | [N, undefined], undefined] | M;
export type Liquid = L | R;
export type Sibilant = [Cs, undefined] | [Jz, undefined, undefined];
export type Nucleus = PaZeiKarsna | ReZeiKarsna | [Y, undefined];
export type Glaide = [Ɩ | W, undefined];
export type ReZeiKarsna = [
    [
        string,
        W,
        undefined
    ] | [string, Ɩ, undefined],
    undefined
];
export type PaZeiKarsna = [string, undefined];
export type I = string;
export type U = string;
export type Y = [string, undefined];
export type Ɩ = string;
export type W = ["u", ""];
export type InitialPair = [undefined, Zunsna, Zunsna, undefined];
export type Affricate = [T, Cs] | [D, Jz];
export type Zunsna = Pfbgvkx | D | Jz | Cs | T | Syllabic;
export type Syllabic = L | M | N | R;
export type L = [string, undefined];
export type M = [string, undefined];
export type N = [string, undefined, undefined];
export type R = [string, undefined];
export type Pfbgvkx = [string, undefined];
export type D = [string, undefined];
export type Jz = [string, undefined];
export type Cs = [string, undefined];
export type X = [string, undefined];
export type T = [string, undefined];
export type H = [[string, undefined], undefined];
export type PostWord = Pause | [undefined, Jbovla] | string;
export type Pause = Pause0 | undefined;
export type Pause0 = ["drata", string];
export type Nul = string[];
export {};
