import { Package } from "./MultiArticle";
import { FilterMode, MultiArticleConfiguration } from "./MultiArticleFilter";
/**
 * A class implementing the restricted cascade mode for multi article traversal.
 * A cascade starts with discrete articles and lists all its properties and available values.
 * After setting a value, properties of the descendants which fit the config are also shown.
 */
export default class RestrictedCascadeMode implements FilterMode {
    /** An array of all root descendants */
    private rootDescendants;
    /** The multi articles package */
    private multiArticles;
    /** The configuration of the root MA */
    private rootConfiguration;
    private _root;
    /** The properties of the root MA */
    private rootProperties;
    root: string;
    /**
     * The constructor
     * @param multiArticles
     * @param root
     */
    constructor(multiArticles: Package, root: string);
    /**
     * Get all properties for the configuration
     * @param configuration
     * @returns {any}
     */
    getProperties(configuration: MultiArticleConfiguration): string[];
    /**
     * Get all property values. For this, look for discrete articles that match the configuration.
     * @param property
     * @param configuration
     * @returns possible property values
     */
    getPropertyValues(property: string, configuration: MultiArticleConfiguration): string[];
}
