import { Responder, ResponderType, ResponderTypes, ResponderParser, ResponderParams } from '@types';
export interface Route<Path extends string, T extends ResponderTypes, Parse extends ResponderParser<Path> | undefined> extends Responder<Path, T, Parse> {
    parts: string[];
}
type Router = Route<string, ResponderTypes, ResponderParser<string> | undefined>;
export declare class route {
    private routes;
    create<Path extends string, T extends ResponderTypes, Parse extends ResponderParser<Path> | undefined = undefined>(opts: Responder<Path, T, Parse>): Route<Path, T, Parse>;
    find(id: string, type: ResponderType): Router | null;
    extract<Path extends string, T extends ResponderTypes, Parse extends ResponderParser<Path> | undefined>(id: string, route: Route<Path, T, Parse>): ResponderParams<Path>;
}
export {};
//# sourceMappingURL=route.d.ts.map