import { Behaviour } from "../Component.js";
import { type IPointerClickHandler, PointerEventData } from "../ui/index.js";
/**
 * [OpenURL](https://engine.needle.tools/docs/api/OpenURL) OpenURLMode defines how a URL should be opened.
 */
export declare enum OpenURLMode {
    NewTab = 0,
    SameTab = 1,
    NewWindow = 2
}
/**
 * OpenURL behaviour opens a URL in a new tab or window when the object (or any if it's children) is clicked.
 *
 * @category Interactivity
 * @category Web
 * @group Components
 */
export declare class OpenURL extends Behaviour implements IPointerClickHandler {
    /**
     * The URL to open.
     */
    url?: string;
    /**
     * The mode in which the URL should be opened: NewTab, SameTab, NewWindow.
     */
    mode: OpenURLMode;
    /**
     * If true, the URL will be opened when the object with this component is clicked.
     */
    clickable: boolean;
    /**
     * Opens the URL in a new tab or window.
     */
    open(): Promise<void>;
    /** @internal */
    start(): void;
    /** @internal */
    onPointerEnter(args: any): void;
    /** @internal */
    onPointerExit(): void;
    /** @internal */
    onPointerClick(args: PointerEventData): void;
    private _validateUrl;
}
