/** @packageDocumentation
 * @module Notification
 */
import "./ToolAssistanceField.scss";
import * as React from "react";
import type { ToolAssistanceInstruction, ToolAssistanceInstructions } from "@itwin/core-frontend";
import type { CommonProps, UiStateStorage } from "@itwin/core-react";
import { UiStateStorageContext } from "../../uistate/useUiStateStorage";
/** Properties of [[ToolAssistanceField]] component.
 * @public
 */
export interface ToolAssistanceFieldProps extends CommonProps {
    /** Indicates whether to include promptAtCursor Checkbox. Defaults to true. */
    includePromptAtCursor: boolean;
    /** Optional parameter for persistent UI settings. Defaults to UiStateStorageContext.
     */
    uiStateStorage?: UiStateStorage;
    /** Cursor Prompt Timeout period. Defaults to 5000. */
    cursorPromptTimeout: number;
    /** Fade Out the Cursor Prompt when closed. */
    fadeOutCursorPrompt: boolean;
    /** Indicates whether to show promptAtCursor by default. Defaults to false. */
    defaultPromptAtCursor: boolean;
}
/** Default properties of [[ToolAssistanceField]] component.
 * @internal
 */
export type ToolAssistanceFieldDefaultProps = Pick<ToolAssistanceFieldProps, "includePromptAtCursor" | "uiStateStorage" | "cursorPromptTimeout" | "fadeOutCursorPrompt" | "defaultPromptAtCursor">;
/** @internal */
interface ToolAssistanceFieldState {
    instructions: ToolAssistanceInstructions | undefined;
    toolIconSpec: string;
    showPromptAtCursor: boolean;
    includeMouseInstructions: boolean;
    includeTouchInstructions: boolean;
    showMouseTouchTabs: boolean;
    showMouseInstructions: boolean;
    showTouchInstructions: boolean;
    mouseTouchTabIndex: number;
    isPinned: boolean;
    isOpen: boolean;
}
/** Tool Assistance Field React component.
 * @public
 */
export declare class ToolAssistanceField extends React.Component<ToolAssistanceFieldProps, ToolAssistanceFieldState> {
    /** @internal */
    static contextType: React.Context<UiStateStorage>;
    /** @internal */
    context: React.ContextType<typeof UiStateStorageContext>;
    private static _toolAssistanceKey;
    private static _showPromptAtCursorKey;
    private static _mouseTouchTabIndexKey;
    private _showPromptAtCursorSetting;
    private _mouseTouchTabIndexSetting;
    private _target;
    private _indicator;
    private _cursorPrompt;
    private _isMounted;
    private _uiSettingsStorage;
    /** @internal */
    static readonly defaultProps: ToolAssistanceFieldDefaultProps;
    /** @internal */
    constructor(p: ToolAssistanceFieldProps);
    /** @internal */
    componentDidMount(): Promise<void>;
    /** @internal */
    componentWillUnmount(): void;
    private restoreSettings;
    private _handleToolAssistanceChangedEvent;
    private _isBothInstruction;
    private _isMouseInstruction;
    private _isTouchInstruction;
    private _handleToolIconChangedEvent;
    private _showCursorPrompt;
    private _sectionHasDisplayableInstructions;
    private _getDisplayableInstructions;
    private _handleMouseTouchTab;
    /** @internal */
    render(): React.ReactNode;
    private _handleTargetRef;
    private _onPromptAtCursorChange;
    private _handleClose;
    private _handleOutsideClick;
    private _handleToolAssistanceIndicatorClick;
    private _handlePinButtonClick;
    private _handleCloseButtonClick;
    private setIsOpen;
    /** @internal */
    static getInstructionImage(instruction: ToolAssistanceInstruction): React.ReactNode;
    private static getInstructionSvgImage;
    private static getInstructionKeyboardImage;
    private static getKeyNode;
}
export {};
//# sourceMappingURL=ToolAssistanceField.d.ts.map