interface Members { [key: string]: unknown; } declare type Constructor = new (...args: Args) => Return; declare type AnyConstructor = Constructor; /** * A representation of a constructor and its recursively-defined parent relationships * and its `next` method (potentially supplied a different key). */ declare type Chainable = Constructor, InstanceType> & LastMembers & Record]: LastMembers[Key]; } & NewMembers>(newMembers: NewMembers & ThisType) => Chainable>; /** * Extends from a constructor and casts the new class as an instance of `Chainable`. * * @param source - The constructor to extend and coerce into a chainable. * @param key - The name of the method for moving down the chain. */ export declare const Chainable: , NextKey extends string = "next">(source: Source, key?: NextKey | undefined) => Chainable; export {}; //# sourceMappingURL=index.d.ts.map