import type { CronFormat, FieldItem } from './types';
declare function range(start: number, end: number, step?: number): number[];
declare class Range {
    [name: string]: number;
    start: number;
    end: number;
    step: number;
    constructor(start: number, end: number, step?: number);
    get length(): number;
    [Symbol.iterator](): {
        next: () => {
            value: number;
            done: boolean;
        };
    };
}
export type toText = (value: number) => string;
/**
 * generate items for fields
 * @param min - first value
 * @param max - last value
 * @param genText - returns a string representation of value
 * @param genAltText - returns an alternative string representation of value
 * @returns array of items
 */
declare function genItems(min: number, max: number, genText?: toText, genAltText?: toText): FieldItem[];
/**
 *
 * @param locale - locale code, e.g.: en, en-GB de-DE
 * @param [format='crontab'] format of cron expression
 * @returns items for minute, hour, day, month and day of week
 */
declare function defaultItems(localeCode: string, format?: CronFormat): {
    secondItems: FieldItem[];
    minuteItems: FieldItem[];
    hourItems: FieldItem[];
    dayItems: FieldItem[];
    monthItems: FieldItem[];
    dayOfWeekItems: FieldItem[];
};
/**
 * pads numbers
 * @param n - number to pad
 * @param width - length of final string
 * @example
 * ```
 * //returns "001"
 * util.pad(1,3)
 * ```
 * @returns the padded number
 */
declare function pad(n: number, width: number): string;
/**
 * determines whether the passed value is an object
 * @returns true if value is an object, otherwise false
 */
declare function isObject(value: any): value is {
    [key: string]: any;
};
/**
 * copies (deep copy) all properties from each source to target
 */
declare function deepMerge(target: Object, ...sources: {
    [key: string]: any;
}[]): {
    [key: string]: any;
} | undefined;
declare function traverse(obj: {
    [key: string]: any;
}, ...keys: string[][]): any;
declare function isSquence(numbers: number[]): boolean;
declare function unimplemented(): never;
declare function splitArray<T>(arr: T[], chunkSize: number, fill?: boolean): (T | null)[][];
export { deepMerge, defaultItems, genItems, isObject, isSquence, pad, Range, range, splitArray, traverse, unimplemented, };
//# sourceMappingURL=util.d.ts.map