import { Icon } from '@ni/nimble-components/dist/esm/icon-base';
declare global {
    interface HTMLElementTagNameMap {
        'ok-icon-dynamic': IconDynamic;
    }
}
/**
 * Base class for dynamic icons. Not intended to be used directly, instead use to register dynamic icons:
 * ```
 * customElements.get('ok-icon-dynamic').registerIconDynamic('ok-icon-dynamic-awesome', '<img data uri or arbitrary url>');
 * ```
 * After calling successfully, the icon can be used like any other icon:
 * ```
 * <ok-icon-dynamic-awesome></ok-icon-dynamic-awesome>
 * <nimble-mapping-icon icon="ok-icon-dynamic-awesome"></nimble-mapping-icon>
 * ```
 */
export declare class IconDynamic extends Icon {
    readonly url: string;
    constructor(/** @internal */ url: string);
    static registerIconDynamic(tagName: string, url: string): void;
}
export declare const iconDynamicTag = "ok-icon-dynamic";
