import { LitElement, PropertyValues } from 'lit';
import { iconNamesType, IconDefinition } from '../../utils/icons';
import { ShadowPartsController } from '../../controllers/shadow-parts-controller';
import { FileKindType } from '../../types/files.types';
declare global {
    interface HTMLElementTagNameMap {
        "wy-icon": WyIcon;
        "wy-icon-stack": WyIconStack;
        "wy-icon-display": WyIconDisplay;
    }
}
/**
 * Icon provider with optional overlay icon.
 *
 * **Used sub components**
 *
 * - [`<wy-icon-stack>`](./wy-icon.ts)
 *
 * @slot - Any content to display within the icon area.
 *
 * @csspart wy-icon-wrapper - Wrapper around the icon.
 * @csspart wy-icon - SVG icon.
 * @csspart wy-icon-current-color - When using inherited color for fill.
 * @csspart wy-kind-{kind} - Dynamic part set when using `kind` property.
 * @csspart wy-ext-{ext} - Dynamic part set when using `ext` property.
 * @csspart wy-icon-color-{color} - Dynamic part set when using `color` property.
 * @csspart wy-icon-first - When defined as `first`.
 * @csspart wy-icon-last - When defined as `last`.
 * @csspart wy-icon-inline - When defined as `inline`.
 * @csspart wy-icon-stack-layer - When defined with `layer`.
 * @csspart wy-icon-state - When defined with `state`.
 * @csspart wy-active - When defined as active.
 */
export declare class WyIcon extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Name of the predefined icon to use.
     */
    name?: iconNamesType | "";
    /**
     * Name of any overlay icon to use.
     */
    overlayName?: iconNamesType | "";
    /**
     * Color token name.
     * Set to `native` to use original colors in SVG icons.
     */
    color: string;
    /**
     * The size of the icon in pixels. The pixels are translated to rem size with a base of 16px/rem.
     */
    size: number;
    /**
     * Kind of icon or file type.
     */
    kind?: FileKindType | "text-icon";
    /**
     * Any file extension. Sets what color to use for some extensions.
     */
    ext?: string;
    /**
     * Adjust rendering to fit in inline layout.
     */
    inline: boolean;
    /**
     * Adjust rendering to fit when placed first.
     */
    first: boolean;
    /**
     * Adjust rendering to fit when placed last.
     */
    last: boolean;
    /**
     * Adjust rendering so that the icon is placed in an overlaying layer.
     */
    layer: boolean;
    /**
     * Make the icon have a visible state that can be toggled by setting the `active` property.
     */
    state: boolean;
    /**
     * Active state of the icon. Makes the icon visible when state mode is enabled.
     */
    active: boolean;
    /**
     * Path string to use in SVG representation. Automatically set when using `name` property.
     * @internal
     */
    icon: IconDefinition;
    /**
     * Overlay path string to use in SVG representation. Automatically set when using `overlayName` property.
     * @internal
     */
    overlayIcon?: IconDefinition;
    /**
     * Resolved CSS color when using `color=native`.
     * @internal
     */
    nativeIconColor?: string;
    /**
     * Resolved overlay CSS color when using `overlayName`.
     * @internal
     */
    nativeOverlayColor?: string;
    protected uniqueId: string;
    willUpdate(changedProperties: PropertyValues<this>): void;
    render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1> | import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>[];
}
/**
 * Set of stacked icons. Used for state icons or overlayed icons.
 *
 * @slot - Any icons to stack.
 */
export declare class WyIconStack extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    protected render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
/**
 * Displays a large icon with optional text and meta content.
 *
 * @slot - The icon to display.
 * @slot text - Any text to display.
 * @slot meta - Any meta content to display.
 * @csspart wy-icon-display - The icon container.
 * @csspart wy-icon-display-icon - The icon.
 * @csspart wy-icon-display-text - Any text.
 * @csspart wy-icon-display-meta - Any meta content.
 */
export declare class WyIconDisplay extends LitElement {
    static styles: import('lit').CSSResult[];
    protected exportParts: ShadowPartsController;
    /**
     * Fills the flex area.
     */
    fill: boolean;
    protected render(): import('../../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-icon.d.ts.map