import { ElementRef, OnChanges, OnInit, Renderer2, OnDestroy, InjectionToken } from '@angular/core';
import { LyTheme2, ThemeVariables, LyClasses, StyleTemplate, ThemeRef, StyleCollection } from '@alyle/ui';
import * as i0 from "@angular/core";
export interface LyBadgeVariables {
    badge?: LyBadgeTheme;
}
export interface LyBadgeTheme {
    root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)> | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);
    appearance?: {
        default?: (classes: LyClasses<typeof STYLES>) => StyleTemplate;
        dot?: (classes: LyClasses<typeof STYLES>) => StyleTemplate;
        [name: string]: ((classes: LyClasses<typeof STYLES>) => StyleTemplate) | undefined;
    };
}
export declare const LY_BADGE_DEFAULT_OPTIONS: InjectionToken<LyBadgeTheme>;
export declare const STYLES: (theme: ThemeVariables & LyBadgeVariables, ref: ThemeRef) => {
    $name: string;
    $priority: number;
    root: () => (_className: string) => string;
    relative: (_className: string) => string;
};
/** @docs-private */
export declare class LyBadgeBase {
    _theme: LyTheme2;
    constructor(_theme: LyTheme2);
}
/** @docs-private */
export declare const LyBadgeMixinBase: import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/build-common-behaviors").CanStyleUpdater> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/bg").CanBg> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/color").CanColor> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/raised").CanRaised> & import("@alyle/ui").CanDisableCtor & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/outlined").CanOutlined> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/elevation").CanElevation> & import("@alyle/ui/src/common/constructor").Constructor<import("@alyle/ui/src/common/shadow-color").CanShadowColor> & typeof LyBadgeBase;
export declare class LyBadge extends LyBadgeMixinBase implements OnChanges, OnInit, OnDestroy {
    private _el;
    private _renderer;
    static readonly и = "LyBadge";
    /**
     * Styles
     * @docs-private
     */
    readonly classes: LyClasses<(theme: ThemeVariables & LyBadgeVariables, ref: ThemeRef) => {
        $name: string;
        $priority: number;
        root: () => (_className: string) => string;
        relative: (_className: string) => string;
    }>;
    private _content;
    private _positionClass;
    private _badgeEl;
    private _badgeElementRef;
    private _sRenderer?;
    /** The content for the badge */
    set content(val: string | number);
    get content(): string | number;
    set container(container: HTMLElement);
    get container(): HTMLElement;
    private _container;
    hPosition: 'before' | 'after';
    vPosition: 'above' | 'below';
    get overlap(): 'circle' | 'rectangle';
    set overlap(val: 'circle' | 'rectangle');
    private _overlap;
    private _overlapClass;
    /** The color of the badge */
    get bg(): string;
    set bg(val: string);
    /** The color of the badge */
    get lyBadgeBg(): string;
    set lyBadgeBg(val: string);
    private _lyBadgeBg;
    get appearance(): string;
    set appearance(val: string);
    get lyBadgeAppearance(): string;
    set lyBadgeAppearance(val: string);
    private _appearance;
    private _appearanceClass;
    constructor(_el: ElementRef<HTMLElement>, _theme: LyTheme2, _renderer: Renderer2);
    ngOnChanges(): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private _updatePosition;
    private _createBadge;
    static ɵfac: i0.ɵɵFactoryDeclaration<LyBadge, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LyBadge, "ly-badge, [lyBadge]", never, { "bg": { "alias": "bg"; "required": false; }; "color": { "alias": "color"; "required": false; }; "raised": { "alias": "raised"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "outlined": { "alias": "outlined"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "shadowColor": { "alias": "shadowColor"; "required": false; }; "content": { "alias": "lyBadge"; "required": false; }; "container": { "alias": "container"; "required": false; }; "hPosition": { "alias": "hPosition"; "required": false; }; "vPosition": { "alias": "vPosition"; "required": false; }; "overlap": { "alias": "overlap"; "required": false; }; "lyBadgeBg": { "alias": "lyBadgeBg"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "lyBadgeAppearance": { "alias": "lyBadgeAppearance"; "required": false; }; }, {}, never, never, false, never>;
}
