UNPKG

reminist

Version:
72 lines (69 loc) 2.27 kB
// Generated by dts-bundle-generator v9.5.1 declare const NullProtoObj: { new (): any; }; export declare class Node<Data, Path extends string, Endpoint extends boolean> { name: string; store: Endpoint extends true ? Data : unknown; endpoint: Endpoint; type: NodeType; paramName: string; static: NullProtoObj<Node<Data, any, any>>; dynamic: Node<Data, any, any> | null; catchAll: Node<Data, any, any> | null; optionalCatchAll: Node<Data, any, any> | null; wildcard: Node<Data, any, any> | null; childCount: number; nonStaticChildCount: number; constructor(params: NodeParams<Data, Endpoint, Path>); addChild(node: Node<Data, string, boolean>): void; removeChild(node: Node<Data, any, any>): void; } export declare class Reminist<const Paths extends readonly string[] = readonly string[], const Context extends { [Path in Paths[number]]: unknown; } = { [Path in Paths[number]]: unknown; }, const Keys extends readonly string[] = readonly string[]> { private keys; private routers; private staticRouter; constructor(options?: ReministOptions<Keys>); getRoot(key: Keys[number]): Node<Context[Paths[number]], string, boolean>; add<P extends Paths[number]>(key: Keys[number], path: P, store: Context[P]): void; find<P extends Paths[number]>(key: Keys[number], path: P): { node: Node<Context[P], string, boolean> | null; params: Record<string, string>; }; has<P extends Paths[number]>(key: Keys[number], path: P): boolean; delete<P extends Paths[number]>(key: Keys[number], path: P): boolean; static create<const T extends readonly string[]>(options: { keys: T; }): { withData: <const Paths extends readonly string[], Context extends { [Path in Paths[number]]: any; } = { [Path in Paths[number]]: any; }>() => Reminist<Paths, Context, T>; }; } export declare enum NodeType { Static = 0, Dynamic = 1, CatchAll = 2, OptionalCatchAll = 3, Wildcard = 4 } export type NodeParams<Data, Endpoint extends boolean, Path extends string> = { name: Path; } & (Endpoint extends true ? { endpoint: true; store: Data; } : { endpoint: false; store?: never; }); export type ReministOptions<Keys extends readonly string[]> = { keys: Keys; }; type NullProtoObj<T = unknown> = InstanceType<new () => Record<PropertyKey, T>>; export {};