import { ValueContainer } from './Ast'; import { MatcherFunction } from './Types'; /** * Simple wrapper around the matcher function. * Recommended return type for builder plugins. * * @typeParam L - the type of HTML Element in the targeted DOM AST. * @typeParam V - the type of associated values. */ export declare class Picker { private f; /** * Create new Picker object. * * @typeParam L - the type of HTML Element in the targeted DOM AST. * @typeParam V - the type of associated values. * * @param f - the function that matches an element * and returns all associated values. */ constructor(f: MatcherFunction); /** * Run the selectors decision tree against one HTML Element * and return all matched associated values * along with selector specificities. * * Client code then decides how to further process them * (sort, filter, etc). * * @param el - an HTML Element. * * @returns all associated values along with * selector specificities for all matched selectors. */ pickAll(el: L): ValueContainer[]; /** * Run the selectors decision tree against one HTML Element * and choose the value from the most specific matched selector. * * @param el - an HTML Element. * * @param preferFirst - option to define which value to choose * when there are multiple matches with equal specificity. * * @returns the value from the most specific matched selector * or `null` if nothing matched. */ pick1(el: L, preferFirst?: boolean): V | null; }