/** @packageDocumentation
 * @module Item
 */
import type * as React from "react";
import type { ConditionalBooleanValue, ConditionalStringValue, StringGetter } from "@itwin/appui-abstract";
import type { ItemProps } from "./ItemProps.js";
import type { BadgeType, IconSpec } from "@itwin/core-react";
import type { BadgeKind } from "@itwin/core-react/internal";
/** Base state for any 'stateful' React component.
 * @public
 * @deprecated in 4.15.0. Define a custom state for your React components.
 */
export interface BaseItemState {
    isVisible?: boolean;
    isEnabled?: boolean;
    isActive?: boolean;
    isPressed?: boolean;
}
/** The base class for Items.
 * @public
 * @deprecated in 4.15.0. Use specific item types instead, i.e. {@link ToolbarItem}.
 */
export declare abstract class ItemDefBase {
    private _label;
    private _tooltip;
    private _description;
    isPressed: boolean;
    private _isActive;
    get isActive(): boolean;
    set isActive(v: boolean);
    applicationData?: any;
    isHidden?: boolean | ConditionalBooleanValue;
    isDisabled?: boolean | ConditionalBooleanValue;
    /** @deprecated in 4.16.0. Use `badgeKind` property instead. */
    badgeType?: BadgeType;
    badgeKind?: BadgeKind;
    iconSpec?: IconSpec;
    iconElement?: React.ReactNode;
    static initializeDef(me: ItemDefBase, itemProps: ItemProps): void;
    constructor(itemProps: ItemProps);
    get trayId(): undefined;
    abstract get id(): string;
    /** Get the label string */
    get rawLabel(): string | StringGetter | ConditionalStringValue;
    /** Get the label string */
    get label(): string;
    /** Set the label.
     * @param v A string or a function to get the string.
     */
    setLabel(v: string | StringGetter | ConditionalStringValue): void;
    /** Get the tooltip string */
    get tooltip(): string;
    /** Set the tooltip.
     * @param v A string or a function to get the string.
     */
    setTooltip(v: string | StringGetter | ConditionalStringValue): void;
    /** Get the description string */
    get description(): string;
    /** Set the description.
     * @param v A string or a function to get the string.
     */
    setDescription(v: string | StringGetter | ConditionalStringValue): void;
}
//# sourceMappingURL=ItemDefBase.d.ts.map