import { FocusableRef } from '@react-types/shared';
import { AriaButtonProps } from 'react-aria';
import { AllBaseProps, TagName } from '../../tasty';
import type { NavigateArg, NavigateOptions, To } from '../../providers/navigation.types';
export type { NavigateLike, Path, To, NavigateArg, NavigateOptions, RelativeRoutingType, } from '../../providers/navigation.types';
export 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]
 */
export declare function openLink(href: any, target?: any): void;
export declare function parseTo(to: NavigateArg | undefined): {
    newTab: boolean;
    nativeRoute: boolean;
    cleanTo: To | undefined;
    isHistoryNavigation: boolean;
    historyDelta?: number;
    isHashNavigation: boolean;
    isExternal: boolean;
};
export declare function performClickHandler(evt: any, { navigate, resolvedHref, to, onPress, tracking, navigationOptions }: {
    navigate: any;
    resolvedHref: any;
    to: any;
    onPress: any;
    tracking: any;
    navigationOptions: any;
}): void;
export declare const useAction: ({ to, as, htmlType, label, mods, onPress, navigationOptions, ...props }: CubeUseActionProps, ref: FocusableRef<HTMLElement>) => {
    actionProps: {
        ref: import("@react-types/shared").RefObject<HTMLElement | null>;
        type: "button" | "reset" | "submit";
        rel: string | undefined;
        as: "button" | "a" | "div" | "span" | import("react").ComponentType<any>;
        isDisabled: boolean | undefined;
        target: string | undefined;
        href: string | undefined;
        mods: {
            hovered: boolean;
            pressed: any;
            focused: boolean;
            disabled: boolean | undefined;
        };
    };
};
