/** * Defines objects in which elements can be pushed, like arrays. * * @since 2.6.0 */ export interface Pushable { /** * Adds given item in the element * @param item */ push(item: D): void; } /** * Defines objects in which elements can be added, like sets. * * @since 2.6.0 */ export interface Addable { /** * Adds given item in the element * @param item */ add(item: D): void; } /** * Defines objects in which elements can be either added or pushed. * * @since 2.6.0 */ export type Extendable = Pushable | Addable; export type AnyExtendable = Extendable;