///
/**
* Ensure required ENV variables are set during deployment.
*
* Default behavior is to throw an exception if environment variable missing
* and defaultValue value not set.
*
* @param env
* @param defaultValue
*/
export declare const requireEnv: (env: string, defaultValue?: string) => string;
/**
* Parse npm package name and return base name, path and version in an object.
*/
export declare const parsePackageName: (input: string) => {
name: string;
path: string;
version: string;
};
/**
* Deep object walk-through, accepts a function which allows to deeply
* manipulate an object.
*
* @param obj: The object/array to iterate over.
* @param mapFn: Callback function which will be invoked for each child of the object.
* @param InstanceType: Object type to check instances.
* @param key: Field name or array index of the value
*/
export declare const mapDeep: (obj: T, mapFn: (value: any, key: string) => any, InstanceType?: any, key?: string) => T;
/**
* Async variant of `mapValuesDeep`.
*
* @param obj: The object/array to iterate over.
* @param mapFn: Callback function which will be invoked for each child of the object.
* @param InstanceType: Object type to check instances.
* @param key: Field name or array index of the value
*/
export declare const mapDeepAsync: (obj: T, mapFn: (value: any, key: string) => any, InstanceType?: any, key?: string) => Promise;
/**
* Runs the provided function n times.
* @param n
* @param callback
*/
export declare const timesSync: (n: number, callback: () => T) => T[];
/**
* Async variant of `timesSync`.
* @param n
* @param callback
*/
export declare const timesAsync: (n: number, callback: () => void) => Promise;
/**
* Runs the provided async function for each record of the input array.
* @param items
* @param cb
*/
export declare const forEachAsync: (items: E[], cb: Function) => Promise;
/**
* Async variant of filter.
* @param data
* @param fn
*/
export declare const filterAsync: (data: any[], fn: (value: any, index: number) => Promise) => Promise;
/**
* Run the provided async function in sequence using the array as input.
* @param data data to work on
* @param asyncFunc function that should be run in sequence on the provided data
*/
export declare const runInSequence: (data: [], asyncFunc: (..._: any) => Promise) => any;
/**
* Whether the provided input is iterable.
*/
export declare const isIterable: (input: any) => input is Iterable;
export declare const convertToBool: (value: string, fallback?: boolean) => boolean;
export declare const isBool: (value: any) => boolean;
export declare const validateTime: (time: string) => boolean;
export declare const validateDate: (dateString: string) => boolean;
export declare const validateDateTime: (dateTimeString: string) => boolean;
/**
* Returns an array with properties the project has that are not included in the provided 'keys'.
*/
export declare const differenceProps: (object: any, keys: string[]) => any[];
/**
* Remove properties that don't have a value from the passed in object (mutates the object!)
* @param obj
*/
export declare const removeEmptyProperties: (obj: any) => any;
export declare const pieHash: (elements: string[]) => string;
/**
* Print object's properties.
*/
export declare const printDeep: (obj: any, level?: number, showHidden?: boolean) => string;
export declare const groupByKey: (collection: T[], key: K) => import("lodash").Dictionary;
/**
* Flatten the properties of an object one level, so e.g. { foo: { bar: 1, baz: 2 } } becomes { foo_bar: 1, foo_baz: 2 }
*/
export declare const singleLevelFlatten: (obj: {
[key: string]: any;
}, separator?: string) => {};
/**
* Safely decode a JSON string into an object.
*/
export declare const JSONParse: (str: string, fallback?: any) => any;
/**
* Gets the value at path of object. If the resolved value is undefined,
* null or NaN, the defaultValue is returned in its place.
* @param object
* @param path
* @param defaultValue
*/
export declare const safeGet: (object: any, path: string, defaultValue?: any) => any;
/**
* Returns whether the string is a URL or not.
* @param input
*/
export declare const isURL: (input: string) => boolean;
/**
* Returns whether the string is a data URL or not.
* @param input
*/
export declare const isDataURL: (input: string) => boolean;
//# sourceMappingURL=index.d.ts.map