import type { Fn } from "@thi.ng/api";
/**
 * Returns optimized function to immutably select, repeat, reshape and /
 * or reorder array / object values in the specified index order.
 *
 * @remarks
 * Fast paths for up to 8 indices are provided, before a loop based
 * approach is used.
 *
 * @example
 * ```ts tangle:../export/swizzle1.ts
 * import { swizzle } from "@thi.ng/arrays";
 *
 * console.log(
 *   swizzle([0, 0, 0])([1, 2, 3, 4])
 * );
 * // [ 1, 1, 1 ]
 *
 * console.log(
 *   swizzle([1, 1, 3, 3])([1, 2, 3, 4])
 * );
 * // [ 2, 2, 4, 4 ]
 *
 * console.log(
 *   swizzle([2, 0])([1, 2, 3])
 * );
 * // [ 3, 1 ]
 * ```
 *
 * @example
 * Objects can be used as input to the generated function, but the
 * result will always be in array form.

 * ```ts tangle:../export/swizzle2.ts
 * import { swizzle } from "@thi.ng/arrays";
 *
 * console.log(
 *   swizzle(["a", "c", "b"])({a: 1, b: 2, c: 3})
 * );
 * // [ 1, 3, 2 ]
 * ```
 *
 * @param order - indices
 */
export declare const swizzle: <T>(order: string | PropertyKey[]) => Fn<T, any[]>;
//# sourceMappingURL=swizzle.d.ts.map