import { CssStyleSheet, NehanElement, SelectorCache, ILogicalNodeGenerator, ILogicalNodeEvaluator } from "./public-api";
export interface NehanDocumentOptions {
    styleSheets?: CssStyleSheet[];
    generator?: ILogicalNodeGenerator;
    evaluator?: ILogicalNodeEvaluator;
}
export declare class NehanDocument {
    source: string;
    $document: HTMLDocument;
    documentElement: NehanElement;
    body: NehanElement;
    styleSheets: CssStyleSheet[];
    specStyleSheet: CssStyleSheet;
    protected selectorCache: SelectorCache;
    constructor(source: string, options?: NehanDocumentOptions);
    querySelectorAll(query: string): NehanElement[];
    querySelector(query: string): NehanElement | null;
    getElementById(id: string): NehanElement | null;
    getSelectorCache(selector: string): NehanElement[];
    addStyleSheet(stylesheet: CssStyleSheet): NehanDocument;
    addSelectorCache(tag_name: string, element: NehanElement): void;
    createElement(tag_name: string): NehanElement;
    createNativeElement(tag_name: string): HTMLElement;
    createNehanElement(node: HTMLElement | Node): NehanElement;
    createTextNode(text: string): NehanElement;
}
