// The following declare classes use `this` types effectively to avoid type // errors in ../lib_client.js. If support for `this` types in declare classes // is disabled for perf reasons, these will produce warnings. declare class LinkedList { next(): this; } declare class DoublyLinkedList extends LinkedList { prev(): this; } declare module "mini-immutable" { declare class Map { set(key: K, value: V): this; // more precise than Map (see below) } declare class OrderedMap extends Map { // inherits set method returning OrderedMap instead of Map } }