summaryrefslogtreecommitdiff
path: root/source/helpers/types.d.ts
blob: 332a1f1e53a2295551881a3b33e2efad2ed47119 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* eslint-disable @typescript-eslint/consistent-type-definitions -- Declaration merging necessary */
/* eslint-disable @typescript-eslint/ban-types -- The API does return `null`, not `undefined` */
import type {ParseSelector} from 'typed-query-selector/parser';

declare global {
	interface ParentNode {
		querySelector<S extends string>(selector: S | readonly S[]): ParseSelector<S, HTMLElement> | null;

		querySelectorAll<S extends string>(
			selector: S | readonly S[],
		): NodeListOf<ParseSelector<S, HTMLElement>>;
	}

	interface Element {
		closest<S extends string>(selector: S | readonly S[]): ParseSelector<S, HTMLElement> | null;
		matches(selectors: string | readonly string[]): boolean;
	}
}