/** @packageDocumentation
 * @module Item
 */
import * as React from "react";
import { BadgeType, ConditionalBooleanValue, ConditionalStringValue, StringGetter } from "@itwin/appui-abstract";
import { ItemProps } from "./ItemProps";
import { IconSpec } from "@itwin/core-react";
/** Base state for any 'stateful' React component
 * @public
 */
export interface BaseItemState {
    isVisible?: boolean;
    isEnabled?: boolean;
    isActive?: boolean;
    isPressed?: boolean;
}
/** The base class for Items.
 * @public
 */
export declare abstract class ItemDefBase {
    private _label;
    private _tooltip;
    private _description;
    /** @deprecated in 2.x. Use isHidden instead */
    isVisible: boolean;
    /** @deprecated in 2.x. Use isDisabled instead */
    isEnabled: boolean;
    isPressed: boolean;
    private _isActive;
    get isActive(): boolean;
    set isActive(v: boolean);
    applicationData?: any;
    isHidden?: boolean | ConditionalBooleanValue;
    isDisabled?: boolean | ConditionalBooleanValue;
    badgeType?: BadgeType;
    /** @deprecated in 2.x. Use condition instead */
    stateFunc?: (state: Readonly<BaseItemState>) => BaseItemState;
    /** @deprecated in 2.x. Use condition instead */
    stateSyncIds: string[];
    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