declare const initCommentReplyForm: (comment: HTMLElement) => {
    destroy: () => void;
};

/**
 * Create Elastic TextArea
 *
 * Adds an event listener to a `textarea` elment that responds to input events
 * by either increasing or decreasing the `rows` attribute based on whether the
 * `textarea` is scrolling or not. Returns an object containing a `destroy()`
 * method to remove the event listener.
 *
 * @param textarea - the target `textarea` element
 */
declare const createElasticTextArea: (textarea: HTMLTextAreaElement) => {
    destroy: () => void;
};

/**
 * Create Sky Nav Menu
 *
 * Adds an event listener to the toggle button of a Sky Nav component for click
 * events, which runs the toggle command to show or hide the menu with animation.
 * Responds to breakpoint changes to show or hide the nav for large and small
 * screens. Returns an object containing a `destroy()` method to remove the
 * event listener.
 *
 * @param navButton - the toggle button for the navigation
 */
declare const initSkyNav: (navButton: HTMLButtonElement) => {
    destroy: () => void;
};

/**
 * Subscribe
 *
 * Progressively enhances the UX for the Subscribe component.
 *
 * Enhancements include:
 * - A one second form hide delay is added when `:focus` is moved away from the
 *   Subscribe component elements
 * - The form can be hidden by pressing the `Escape` key
 */
declare const createSubscribe: (containerEl: HTMLElement) => {
    init: () => void;
    destroy: () => void;
} | undefined;

export { createElasticTextArea, createSubscribe, initCommentReplyForm, initSkyNav };
