/**
 * Structured representation of a path parsed via {@link parsePath} into a sequence of
 * {@link Separator} and {@link PathSegment} elements.
 */
export type PathContainer = {
    readonly value: string;
    readonly elements: readonly PathContainerElement[];
}

export type PathContainerElement = Separator | PathSegment

export type PathSegment = {
    readonly value: string,
    readonly valueToMatch: string,
    readonly parameters: ReadonlyMap<string, readonly string[]>
}

export type Separator = {
    readonly value: string
}
