/** * css-select adapter / option types. Drop-in compatible with css-select v5. * * The library is generic over the consumer's tree (`Node`/`ElementNode`), * communicated via the `Adapter` interface — exactly the shape SVGO etc. * already implement, so callers don't need to change a thing. */ export declare interface Adapter { isTag: (node: Node) => node is ElementNode existsOne: (test: (e: ElementNode) => boolean, elems: Node[]) => boolean getAttributeValue: (elem: ElementNode, name: string) => string | undefined getChildren: (node: Node) => Node[] getName: (elem: ElementNode) => string getParent: (elem: ElementNode | Node) => ElementNode | null getSiblings: (elem: Node) => Node[] getText: (node: Node) => string hasAttrib: (elem: ElementNode, name: string) => boolean removeSubsets: (nodes: Node[]) => Node[] findAll?: (test: (e: ElementNode) => boolean, elems: Node[]) => ElementNode[] findOne?: (test: (e: ElementNode) => boolean, elems: Node[]) => ElementNode | null equals?: (a: Node, b: Node) => boolean isActive?: (elem: ElementNode) => boolean isVisited?: (elem: ElementNode) => boolean isHovered?: (elem: ElementNode) => boolean } export declare interface Options { xmlMode?: boolean lowerCaseAttributeNames?: boolean lowerCaseTags?: boolean cacheResults?: boolean adapter: Adapter context?: Node | Node[] pseudos?: Record boolean)> rootFunc?: (elem: ElementNode) => boolean relativeSelector?: boolean quirksMode?: boolean } // eslint-disable-next-line pickier/no-unused-vars export type CompiledQuery = (node: ElementNode) => boolean; // eslint-disable-next-line pickier/no-unused-vars export type Predicate = (v: Value) => boolean;