declare const opaqueId: unique symbol; declare interface Tagged { readonly [opaqueId]: Token; } export type Opaque = Type & Tagged; export type ObjectValues = T[keyof T]; export type CssSelectorGenerated = Opaque; export declare const OPERATOR: { readonly NONE: ""; readonly DESCENDANT: " "; readonly CHILD: " > "; }; export type OperatorValue = ObjectValues; export interface ElementSelectorData { value: CssSelectorGenerated; include: boolean; } export interface ElementData { element: Element; operator: OperatorValue; selectors: Partial>; } export type CssSelector = string; export type CssSelectors = CssSelector[]; type CssSelectorMatchFn = (input: string) => boolean; export type CssSelectorMatch = RegExp | string | CssSelectorMatchFn; export declare const CSS_SELECTOR_TYPE: { readonly id: "id"; readonly class: "class"; readonly tag: "tag"; readonly attribute: "attribute"; readonly nthchild: "nthchild"; readonly nthoftype: "nthoftype"; }; export type CssSelectorType = ObjectValues; export type CssSelectorTypes = CssSelectorType[]; export type CssSelectorsByType = Partial>; export type CssSelectorData = Partial>; export type CssSelectorGeneratorOptionsInput = Partial<{ selectors: CssSelectorTypes; whitelist: CssSelectorMatch[]; blacklist: CssSelectorMatch[]; root: ParentNode | null; combineWithinSelector: boolean; combineBetweenSelectors: boolean; includeTag: boolean; maxCombinations: number; maxCandidates: number; useScope: boolean; maxResults: number; ignoreGeneratedClassNames: boolean; }>; export type CssSelectorGeneratorOptions = Required & { selectors: CssSelectorTypes; }>; export interface IdentifiableParent { foundElements: Element[]; selector: CssSelector; } export type PatternMatcher = (input: string) => boolean; export {};