import { Package } from "./MultiArticle";
import { FilterMode, MultiArticleConfiguration } from "./MultiArticleFilter";
/**
 * A class implementing the all mode for multi articles.
 * This is a mode where the user is shown all available properties and values at once.
 * Note that this does not exclude invalid configurations, i.e. the user can set values such that no article matches the config.
 */
export default class AllMode implements FilterMode {
    /** The multiarticles object. */
    private multiArticles;
    /** The root with which to start the all mode. */
    private _root;
    private startConfiguration;
    /** All descendants of the root. */
    private rootDescendants;
    root: string;
    /**
     * The constructor.
     * @param multiArticles
     * @param start: the entry point for the all mode
     */
    constructor(multiArticles: Package, start: string);
    /**
     * Get all available properties of all descendants. Also add the properties of the root MA.
     * @param configuration
     * @returns {T[]}
     */
    getProperties(configuration: MultiArticleConfiguration): Array<string>;
    /**
     * Get the available values for a property. Includes the roots values as well as the descendant values.
     * @param property
     * @param configuration
     * @returns {T[]}
     */
    getPropertyValues(property: string, configuration: MultiArticleConfiguration): Array<string>;
}
