diff --git a/xpath.d.ts b/xpath.d.ts
index 9d1a734..e440b68 100644
--- a/xpath.d.ts
+++ b/xpath.d.ts
@@ -1,9 +1,9 @@
///
-export type SelectedValue = Node | string | number | boolean | null;
+export type ScalarValue = string | number | boolean;
-export type SelectReturnType = Array | SelectedValue;
-export type SelectSingleReturnType = SelectedValue;
+export type SelectReturnType = Array | ScalarValue;
+export type SelectSingleReturnType = ScalarValue | Node | undefined;
export interface XPathSelect {
(expression: string, node: Node): SelectReturnType;
@@ -38,14 +38,14 @@ export function selectWithResolver(expression: string, node: Node, resolver: XPa
export function useNamespaces(namespaceMap: Record): XPathSelect;
// Type guards to narrow down the type of the selected type of a returned Node object
-export function isNodeLike(value: SelectedValue): value is Node;
-export function isArrayOfNodes(value: SelectedValue): value is Node[];
-export function isElement(value: SelectedValue): value is Element;
-export function isAttribute(value: SelectedValue): value is Attr;
-export function isTextNode(value: SelectedValue): value is Text;
-export function isCDATASection(value: SelectedValue): value is CDATASection;
-export function isProcessingInstruction(value: SelectedValue): value is ProcessingInstruction;
-export function isComment(value: SelectedValue): value is Comment;
-export function isDocumentNode(value: SelectedValue): value is Document;
-export function isDocumentTypeNode(value: SelectedValue): value is DocumentType;
-export function isDocumentFragment(value: SelectedValue): value is DocumentFragment;
+export function isNodeLike(value: SelectSingleReturnType): value is Node;
+export function isArrayOfNodes(value: SelectReturnType): value is Node[];
+export function isElement(value: SelectSingleReturnType): value is Element;
+export function isAttribute(value: SelectSingleReturnType): value is Attr;
+export function isTextNode(value: SelectSingleReturnType): value is Text;
+export function isCDATASection(value: SelectSingleReturnType): value is CDATASection;
+export function isProcessingInstruction(value: SelectSingleReturnType): value is ProcessingInstruction;
+export function isComment(value: SelectSingleReturnType): value is Comment;
+export function isDocumentNode(value: SelectSingleReturnType): value is Document;
+export function isDocumentTypeNode(value: SelectSingleReturnType): value is DocumentType;
+export function isDocumentFragment(value: SelectSingleReturnType): value is DocumentFragment;