interface ClassOptions extends Object { mutationObserver?: boolean; defaultStyles?: boolean; useCloneNode?: boolean; showOption?: string; correctionValue?: number; flowDelay?: number; flowAfterDelay?: number; flowSpeed?: number; flowPadding?: number; flowCount?: number; flowCountPre?: number; flowAutoCount?: number; tooltipShowAlways?: boolean; tooltipClass?: string; tooltipDuration?: number; customTooltipStyles?: object; } interface EllipsisOptions extends Object { originalElement: HTMLElement; showOption: string; eventOn: boolean; timer: ReturnType; listener: EventListener; } interface ObjectOverwrite { (obj1: object, obj2: object, propertyOverwrite?: boolean): object; } interface EllipsisHandler { (): AdvancedEllipsis; } declare class AdvancedEllipsis { setElements: (selector: string) => AdvancedEllipsis; getElements: () => Array; setOptions: (options: ClassOptions) => AdvancedEllipsis; getOptions: () => ClassOptions; getOption: (key: string) => boolean | number | string | object; getStatus: () => boolean; start: EllipsisHandler; destroy: EllipsisHandler; restart: EllipsisHandler; constructor(options: ClassOptions | string, selector: string); }