/** @packageDocumentation
 * @module StatusBar
 */
import * as React from "react";
import type { ConditionalStringValue } from "@itwin/appui-abstract";
import type { IconSpec } from "@itwin/core-react";
import type { StatusBarActionItem, StatusBarCustomItem, StatusBarLabelItem } from "./StatusBarItem";
import { StatusBarLabelSide, StatusBarSection } from "./StatusBarItem";
/** Utility functions for creating and maintaining StatusBar items.
 * @public
 */
export declare namespace StatusBarItemUtilities {
    interface CreateActionItemArgs extends Partial<Omit<StatusBarActionItem, "icon" | "iconNode" | "id">>, Pick<StatusBarActionItem, "id"> {
        icon?: StatusBarActionItem["iconNode"];
    }
    type DeprecatedCreateActionItemArgs = [
        id: string,
        section: StatusBarSection,
        itemPriority: number,
        icon: IconSpec,
        tooltip: string | ConditionalStringValue,
        execute: () => void,
        overrides?: Partial<StatusBarActionItem>
    ];
    /** Creates a StatusBar item to perform an action. */
    export function createActionItem(args: CreateActionItemArgs): StatusBarActionItem;
    /** Creates a StatusBar item to perform an action. */
    /** Creates a StatusBar item to perform an action.
     * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.
     */
    export function createActionItem(...args: DeprecatedCreateActionItemArgs): StatusBarActionItem;
    interface CreateLabelItemArgs extends Partial<Omit<StatusBarLabelItem, "id" | "icon" | "iconNode">>, Pick<StatusBarLabelItem, "id"> {
        icon?: StatusBarLabelItem["iconNode"];
    }
    type DeprecatedCreateLabelItemArgs = [
        id: string,
        section: StatusBarSection,
        itemPriority: number,
        icon: IconSpec,
        label: string | ConditionalStringValue,
        labelSide?: StatusBarLabelSide,
        overrides?: Partial<StatusBarLabelItem>
    ];
    /** Creates a StatusBar item to display a label. */
    export function createLabelItem(args: CreateLabelItemArgs): StatusBarLabelItem;
    /** Creates a StatusBar item to display a label.
     * @deprecated in 4.16.0. Uses a deprecated {@link @itwin/core-react#IconSpec} type. Use an overload instead.
     */
    export function createLabelItem(...args: DeprecatedCreateLabelItemArgs): StatusBarLabelItem;
    interface CreateCustomItemArgs extends Partial<Omit<StatusBarCustomItem, "id">>, Pick<StatusBarCustomItem, "id"> {
    }
    type DeprecatedCreateCustomItemArgs = [
        id: string,
        section: StatusBarSection,
        itemPriority: number,
        content: React.ReactNode,
        overrides?: Partial<StatusBarCustomItem>
    ];
    /** Creates a StatusBar item to display a custom content. */
    export function createCustomItem(args: CreateCustomItemArgs): StatusBarCustomItem;
    /** Creates a StatusBar item to display a custom content.
     * @deprecated in 4.16.0. Use an overload instead.
     */
    export function createCustomItem(...args: DeprecatedCreateCustomItemArgs): StatusBarCustomItem;
    export {};
}
//# sourceMappingURL=StatusBarItemUtilities.d.ts.map