import { InternalResult } from '../../ConfinodeResult';
import ConfigDescription, { ConfigDescriptionParameter, ParserContext } from '../ConfigDescription';
/**
 * Description of an array.
 */
export default class ArrayDescription<T> implements ConfigDescription<T[]> {
    protected readonly description: ConfigDescriptionParameter<T>;
    /**
     * Create the array description.
     *
     * @param description - The description to replicate for each array item.
     */
    constructor(description: ConfigDescriptionParameter<T>);
    parse(data: unknown, context: ParserContext<T[]>): InternalResult<T[]> | undefined;
    /**
     * Parse and merge the array content. The default behavior is to concatenate the child nodes to the parsed
     * parent ones.
     *
     * @param data - The array to parse and merge.
     * @param context - The parsing context.
     * @returns The parsed and merged array.
     */
    protected mergeArray(data: any[], context: ParserContext<T[]>): InternalResult<T[]>;
}
