import type { AnyNode } from "domhandler";
export interface DomSerializerOptions {
    /**
     * Print an empty attribute's value.
     *
     * @default xmlMode
     * @example With emptyAttrs: false: <input checked>
     * @example With emptyAttrs: true: <input checked="">
     */
    emptyAttrs?: boolean;
    /**
     * Print self-closing tags for tags without contents.
     *
     * @default xmlMode
     * @example With selfClosingTags: false: <foo></foo>
     * @example With selfClosingTags: true: <foo />
     */
    selfClosingTags?: boolean;
    /**
     * Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options.
     *
     * If the value is `"foreign"`, it will try to correct mixed-case attribute names.
     *
     * @default false
     */
    xmlMode?: boolean | "foreign";
    /**
     * Encode characters that are either reserved in HTML or XML.
     *
     * If `xmlMode` is `true` or the value not `'utf8'`, characters outside of the utf8 range will be encoded as well.
     *
     * @default `decodeEntities`
     */
    encodeEntities?: boolean | "utf8";
    /**
     * Option inherited from parsing; will be used as the default value for `encodeEntities`.
     *
     * @default true
     */
    decodeEntities?: boolean;
}
/**
 * Renders a DOM node or an array of DOM nodes to a string.
 *
 * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
 *
 * @param node Node to be rendered.
 * @param options Changes serialization behavior
 */
export declare function render(node: AnyNode | ArrayLike, options?: DomSerializerOptions): string;
export default render;
//# sourceMappingURL=index.d.ts.map