import { Element } from 'xml-js';
declare type MapCallbackFunc<T> = (value: T, index: number, array: T[]) => any;
declare type ForeachCallbackFunc<T> = (value: T, index: number, array: T[]) => void;
declare type FilterCallbackFunc<T> = (value: T, index: number, array: T[]) => boolean;
declare type Predicate = string | number | FilterCallbackFunc<XmlQueryNode<any>>;
declare type XmlQueryNode<T> = Element & {
    __xmlQuery: true;
    originalNode: T;
    innerElements: () => Element[];
    innerText: () => string;
    query: (predicate: Predicate) => XmlQueryNode<T>;
    queryAll: (predicate: Predicate) => XmlQueryNode<T>;
    map: (callbackfn: MapCallbackFunc<XmlQueryNode<T>>, thisArg?: any) => XmlQueryNode<T>;
    forEach: (callbackfn: ForeachCallbackFunc<XmlQueryNode<T>>, thisArg?: any) => void;
};
declare type AllowedInput = Element | Element[] | XmlQueryNode<any> | string | number | undefined;
export default function xmlQuery(node: AllowedInput): XmlQueryNode<any>;
export {};
