type ExtractParamsFromEndpoint<T extends string> = T extends `${infer Section}/${infer Rest}` ? Section extends `:${infer Param}` ? [Param, ...ExtractParamsFromEndpoint<Rest>] : [...ExtractParamsFromEndpoint<Rest>] : T extends `:${infer LastParam}` ? [LastParam] : [];
type EndpointDefinition<T extends string> = T extends `${infer Method}\x20${infer Path}` ? {
    method: Method;
    path: Path;
    params: ExtractParamsFromEndpoint<Path>;
    toString(): T;
} : never;
export declare function createEndpointDefinition<const T extends string>(signature: T): EndpointDefinition<T>;
export {};
