import type { Abstraction } from "./Abstraction.js"; import type { Constructor, GetInterface, MapDependencies } from "./types.js"; type DropLast = T extends [...infer P, any] ? [...P] : never; type GetLast = T extends [...any, infer Last] ? Last : never; type Implementation, I extends Constructor> = GetInterface extends GetLast> ? I : "Wrong decoratee type!"; export declare function createDecorator, I extends Constructor>(params: { abstraction: A; decorator: Implementation; dependencies: MapDependencies>>; }): Implementation; export {};