import { OnChanges } from '@angular/core';
import { ComponentChanges } from '@bimeister/pupakit.common';
import { BehaviorSubject, Observable } from 'rxjs';
import { TagStateServiceDeclaration } from '../../interfaces/tag-state-service.interface';
import { TagKind } from '../../types/tag-kind.type';
import * as i0 from "@angular/core";
export declare abstract class TagBase implements OnChanges {
    protected readonly tagStateService: TagStateServiceDeclaration;
    disabled: boolean;
    readonly isDisabled$: BehaviorSubject<boolean>;
    clickable: boolean;
    readonly isClickable$: BehaviorSubject<boolean>;
    kind: TagKind;
    private readonly kind$;
    readonly kindClass$: Observable<string>;
    readonly isInteractive$: Observable<boolean>;
    constructor(tagStateService: TagStateServiceDeclaration);
    ngOnChanges(changes: ComponentChanges<this>): void;
    processInteraction(event: Event): void;
    private processDisabledChange;
    private processClickableChange;
    private processColorChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TagBase, never, never, { "disabled": "disabled"; "clickable": "clickable"; "kind": "kind"; }, {}, never, never, false>;
}
