import { A as AnyFunction } from '../AnyFunction-DuIh5Fcc.js';

type NonFunction<T> = Exclude<T, AnyFunction>;

/**
 * Same as `Array.prototype.join`, but allows specifying a non-`string` separator.
 * @param elements The elements to join.
 * @param separator The separator to use.
 * @returns An array with the elements joined by the separator.
 */
declare function join<T extends NonFunction<any>, U extends NonFunction<any>>(elements: ReadonlyArray<NonNullable<T>>, separator: U | ((index: number) => U)): Array<symbol | U | NonNullable<T>>;

export { join };
