/**
 * Given a slot, this function iterates over all of its assigned elements and text nodes and returns the concatenated
 * HTML as a string. This is useful because we can't use slot.innerHTML as an alternative.
 * @param slot
 * @returns a concatenated string from html and text nodes
 */
export declare function getInnerHTML(slot: HTMLSlotElement): string;
/**
 * Given an element (which can either be within a shadowRoot or not) find it's innerText
 * @param element the element to get the text content from
 * @returns a concatenated string of text
 */
export declare function getTextContent(element: HTMLElement): string;
/**
 * Decides if slots are being used and re-renders when slot content changes.
 *
 * @param instance The component instance
 * @param slotNames The names of the slots to watch for changes
 *
 * @example
 * // in your component
 * private slotController = new HasSlotController(this, [default], 'header', 'footer');
 * ...
 * // in your render method
 * {slotController.has('header') && <div class="header"><slot name="header /></div>}
 *
 */
export declare class HasSlotController {
    host: Element;
    slotNames: string[];
    constructor(instance: any, ...slotNames: string[]);
    private hasDefaultSlot;
    private hasNamedSlot;
    has(slotName: string): boolean;
    hostConnected(): void;
    hostDisconnected(): void;
    private handleSlotChange;
}
