import _ = require("../index"); declare module "../index" { interface LoDashStatic { /** * Iterates over elements of collection, returning the first element predicate returns truthy for. * The predicate is bound to thisArg and invoked with three arguments: (value, index|key, collection). * * If a property name is provided for predicate the created _.property style callback returns the property * value of the given element. * * If a value is also provided for thisArg the created _.matchesProperty style callback returns true for * elements that have a matching property value, else false. * * If an object is provided for predicate the created _.matches style callback returns true for elements that * have the properties of the given object, else false. * * @param collection The collection to search. * @param predicate The function invoked per iteration. * @param fromIndex The index to search from. * @return Returns the matched element, else undefined. */ find( collection: List | null | undefined, predicate: ListIteratorTypeGuard, fromIndex?: number ): S|undefined; /** * @see _.find */ find( collection: List | null | undefined, predicate?: ListIterateeCustom, fromIndex?: number ): T|undefined; /** * @see _.find */ find( collection: T | null | undefined, predicate: ObjectIteratorTypeGuard, fromIndex?: number ): S|undefined; /** * @see _.find */ find( collection: T | null | undefined, predicate?: ObjectIterateeCustom, fromIndex?: number ): T[keyof T]|undefined; } interface LoDashImplicitWrapper { /** * @see _.find */ find( this: LoDashImplicitWrapper | null | undefined>, predicate: ListIteratorTypeGuard, fromIndex?: number ): S|undefined; /** * @see _.find */ find( this: LoDashImplicitWrapper | null | undefined>, predicate?: ListIterateeCustom, fromIndex?: number ): T|undefined; /** * @see _.find */ find( this: LoDashImplicitWrapper, predicate: ObjectIteratorTypeGuard, fromIndex?: number ): S|undefined; /** * @see _.find */ find( this: LoDashImplicitWrapper, predicate?: ObjectIterateeCustom, fromIndex?: number ): T[keyof T]|undefined; } interface LoDashExplicitWrapper { /** * @see _.find */ find( this: LoDashExplicitWrapper | null | undefined>, predicate: ListIteratorTypeGuard, fromIndex?: number ): LoDashExplicitWrapper; /** * @see _.find */ find( this: LoDashExplicitWrapper | null | undefined>, predicate?: ListIterateeCustom, fromIndex?: number ): LoDashExplicitWrapper; /** * @see _.find */ find( this: LoDashExplicitWrapper, predicate: ObjectIteratorTypeGuard, fromIndex?: number ): LoDashExplicitWrapper; /** * @see _.find */ find( this: LoDashExplicitWrapper, predicate?: ObjectIterateeCustom, fromIndex?: number ): LoDashExplicitWrapper; } }