/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { IconExternalType, IIconComponent } from '../icon';
import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';
import { IIconButtonComponent } from './icon-button';
import { PopupPlacement } from '../popup';
export declare type IconButtonComponentDelegateProps = Partial<IIconButtonComponent>;
export interface IIconButtonComponentDelegateOptions extends IBaseComponentDelegateOptions {
    iconName?: string;
    iconExternal?: boolean;
    iconExternalType?: IconExternalType;
    iconType?: 'font' | 'component';
    iconClass?: string | string[];
    tooltip?: string;
    tooltipPosition?: PopupPlacement;
}
export interface IIconButtonComponentDelegateConfig extends IBaseComponentDelegateConfig<IIconButtonComponent, IIconButtonComponentDelegateOptions> {
}
export declare class IconButtonComponentDelegate extends BaseComponentDelegate<IIconButtonComponent, IIconButtonComponentDelegateOptions> {
    private _buttonElement;
    private _iconElement?;
    constructor(config?: IIconButtonComponentDelegateConfig);
    protected _build(): IIconButtonComponent;
    get iconElement(): IIconComponent | undefined;
    get disabled(): boolean;
    set disabled(value: boolean);
    /** @deprecated Use buttonElement instead. */
    get butttonElement(): HTMLButtonElement | undefined;
    get buttonElement(): HTMLButtonElement | undefined;
    protected _configure(): void;
    private _configureIcon;
    onClick(listener: (evt: MouseEvent) => void): void;
    onFocus(listener: (evt: Event) => void): void;
    onBlur(listener: (evt: Event) => void): void;
}
