/**
 * Parsed path segment from a Beignet route template.
 */
export type PathTemplateSegment = {
    kind: "static";
    value: string;
} | {
    kind: "dynamic";
    name: string;
    raw: string;
};
/**
 * Parsed representation of a Beignet route path template.
 */
export interface ParsedPathTemplate {
    /**
     * Dynamic parameter names in declaration order.
     */
    keys: string[];
    /**
     * Static and dynamic path segments.
     */
    segments: PathTemplateSegment[];
    /**
     * Normalized Beignet path using `:param` dynamic syntax.
     */
    normalizedPath: string;
    /**
     * Route shape used for ambiguity detection, ignoring dynamic parameter names.
     */
    shapeKey: string;
    /**
     * OpenAPI-compatible path using `{param}` syntax.
     */
    openApiPath: string;
}
/**
 * Parse a Beignet route path template.
 *
 * Paths must start with `/`. Dynamic segments may use `:id` or `[id]`.
 * Contract catch-all segments and partial dynamic segments are intentionally rejected.
 */
export declare function parsePathTemplate(path: string): ParsedPathTemplate;
//# sourceMappingURL=path-template.d.ts.map