import { LitElement, PropertyValues } from 'lit';
import type { TemplateResult } from 'lit';
interface ButtonClassMap {
    [key: string]: boolean;
}
/**
 * Nile icon component.
 *
 * @tag nile-icon
 *
 */
export declare class NileIcon extends LitElement {
    /**
     * The name of the icon set
     * @attr icon set
     * @type {IconName | undefined}
     */
    set?: string;
    /**
     * The name of the icon
     * @attr name
     * @type {IconName | undefined}
     */
    name?: string;
    /**
     * A description of what the icon represents
     * @attr description
     */
    description: string;
    method: string;
    /**
     * A path to a custom SVG file to display as the icon
     * @attr customSvgPath
     */
    customSvgPath?: string;
    /**
     * A size of what the icon represents
     * @attr size
     */
    size: number;
    private _svg;
    title: string;
    /**
     * Color
     */
    color: any;
    push: boolean;
    noFill: boolean;
    /**
     * Retain Viewbox
     */
    frame: any;
    static styles: import("lit").CSSResult;
    private _getIconSize;
    protected updated(changedProperties: PropertyValues): Promise<void>;
    resolveCssVarExpression(expression: string): string | null;
    private addAttributesToSvg;
    private fetchSvg;
    private removeHyphens;
    private getSvgTemplate;
    get buttonClassMap(): ButtonClassMap;
    protected render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'nile-icon': NileIcon;
    }
}
export {};
