/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IIconAdapter } from './icon-adapter';
import { IconUrlBuilder, IconExternalType, IconTheme } from './icon-constants';
export interface IIconFoundation extends ICustomElementFoundation {
    name: string | undefined;
    src: string | undefined;
    lazy: boolean;
    external: boolean;
    externalType: IconExternalType;
    externalUrlBuilder: IconUrlBuilder;
    viewbox: string;
    theme: IconTheme;
    layout(): void;
}
export declare class IconFoundation implements IIconFoundation {
    private _adapter;
    private _name;
    private _src;
    private _lazy;
    private _external;
    private _externalType;
    private _externalUrlBuilder;
    private _viewbox;
    private _theme;
    private _applyTimer;
    private _lazyListener;
    private _registrationListener;
    constructor(_adapter: IIconAdapter);
    initialize(): void;
    destroy(): void;
    private _safeApplyIcon;
    private _tryRemoveListener;
    private _applyIcon;
    private _clearIconQueue;
    private _queueIconUpdate;
    private _loadIcon;
    private _setIconContent;
    private _tryGetIcon;
    private _getExternalUrl;
    get name(): string | undefined;
    set name(value: string | undefined);
    get src(): string | undefined;
    set src(value: string | undefined);
    get lazy(): boolean;
    set lazy(value: boolean);
    get external(): boolean;
    set external(value: boolean);
    get externalType(): IconExternalType;
    set externalType(value: IconExternalType);
    get externalUrlBuilder(): IconUrlBuilder;
    set externalUrlBuilder(cb: IconUrlBuilder);
    get viewbox(): string;
    set viewbox(value: string);
    get theme(): IconTheme;
    set theme(value: IconTheme);
    layout(): void;
}
