declare module 'optionull' { export class Optional { static empty(): Optional; static ofNullable(value: T): Optional; getOrElse(fn: (value: T) => T): T; getOrElse(defaultValue: T): T; get(): T; isDefined(): boolean; isNotNull(): boolean; isPresent(): boolean; ifPresent(fn: (value: T) => any): void; ifPresentOrElse(fn: (value: T) => any, elseFn: () => any): void; map(fn: (value: T) => U): Optional; flatMap(fn: (value: T) => any): Optional; filter(fn: (value: T) => boolean): Optional; filter(val: any): Optional; } }