import { AriaAttributes, PropsWithChildren } from "react";
import { LinkWithAction } from "../types";
/**
 * ActionLink wraps element with links or actions, and renders
 * as either a `<a>` or ` <button>` tag according to which one
 * is more semantically correct given the type of action passed
 * to it. Furthermore, if a link is not given, it takes the tag
 * completely out of the way, and simply renders a `<span>`.
 *
 * For example, if passed only an href, it renders as an anchor.
 * If it has only an onClick handler, it renders as a button.
 * If it has both, it will render as an anchor so that the behavior
 * with keyboard shortcuts (e.g. left-click) will go to the href,
 * but if effectively clicked it will prevent the default but call
 * the onclick event.
 * If it has none, renders as a span if given a classname, or
 * completely disappears if not necessary.
 */
declare const ActionLink: (props: PropsWithChildren<ActionLinkProps>) => JSX.Element;
interface ActionLinkProps extends AriaAttributes {
    link?: LinkWithAction<unknown>;
    className?: string;
    allowDefault?: boolean;
    disabled?: boolean;
}
export default ActionLink;
