import { type FactoryWithInput } from '../getter'; import { type RandomNumberFactoryInput, type RandomNumberFactory } from '../number/random'; /** * Configuration for creating an array of items using a factory function. */ export interface MakeArray { readonly count: number; /** * Makes an item */ readonly make: FactoryWithInput; } /** * Configuration for creating a {@link RandomArrayFactory}. Combines a make function with a random number source to produce arrays of varying length. */ export interface RandomArrayFactoryConfig extends Omit, 'count'> { readonly random: RandomNumberFactory | RandomNumberFactoryInput; } /** * Creates an array of a random size and values. */ export type RandomArrayFactory = FactoryWithInput; /** * Creates a factory function that generates arrays of a random length populated with items from a make function. * * @param config - configuration containing the make function and random number source * @returns a factory that produces arrays of random length, optionally accepting a specific count override */ export declare function randomArrayFactory(config: RandomArrayFactoryConfig): RandomArrayFactory;