
import { AllBaseProps, TagName } from "../../tasty/types.js";
import "../../tasty/index.js";
import { NavigateArg, NavigateLike, NavigateOptions, Path, RelativeRoutingType, To } from "../../providers/navigation.types.js";
import * as react from "react";
import { AriaButtonProps } from "react-aria";
import * as _react_types_shared0 from "@react-types/shared";
import { FocusableRef } from "@react-types/shared";

//#region src/components/actions/use-action.d.ts
interface CubeUseActionProps<T extends TagName = 'a' | 'button' | 'span' | 'div'> extends AllBaseProps<T>, Omit<AriaButtonProps, 'type'> {
  to?: NavigateArg;
  label?: string;
  htmlType?: 'button' | 'submit' | 'reset' | undefined;
  navigationOptions?: NavigateOptions;
}
/**
 * Helper to open link.
 * @param {String} href
 * @param {String|Boolean} [target]
 */
declare function openLink(href: any, target?: any): void;
declare function parseTo(to: NavigateArg | undefined): {
  newTab: boolean;
  nativeRoute: boolean;
  cleanTo: To | undefined;
  isHistoryNavigation: boolean;
  historyDelta?: number;
  isHashNavigation: boolean;
  isExternal: boolean;
};
declare function performClickHandler(evt: any, {
  navigate,
  resolvedHref,
  to,
  onPress,
  tracking,
  navigationOptions
}: {
  navigate: any;
  resolvedHref: any;
  to: any;
  onPress: any;
  tracking: any;
  navigationOptions: any;
}): void;
declare const useAction: ({
  to,
  as,
  htmlType,
  label,
  mods,
  onPress,
  navigationOptions,
  ...props
}: CubeUseActionProps, ref: FocusableRef<HTMLElement>) => {
  actionProps: {
    ref: _react_types_shared0.RefObject<HTMLElement | null>;
    type: "button" | "submit" | "reset";
    rel: string | undefined;
    as: "a" | "button" | "div" | "span" | react.ComponentType<any>;
    isDisabled: boolean | undefined;
    target: string | undefined;
    href: string | undefined;
    mods: {
      hovered: boolean;
      pressed: any;
      focused: boolean;
      disabled: boolean | undefined;
    };
  };
};
//#endregion
export { CubeUseActionProps, openLink, parseTo, performClickHandler, useAction };
//# sourceMappingURL=use-action.d.ts.map