import { OnChanges } from '@angular/core';
import { ComponentChanges } from '@bimeister/pupakit.common';
import { BehaviorSubject, Observable } from 'rxjs';
import { SelectStateServiceDeclaration } from '../../interfaces/select-state-service-declaration.interface';
import * as i0 from "@angular/core";
export declare abstract class SelectOptionBase<T> implements OnChanges {
    protected readonly selectStateService: SelectStateServiceDeclaration<T>;
    abstract value: T;
    abstract isDisabled: boolean;
    private readonly value$;
    readonly isHovered$: BehaviorSubject<boolean>;
    readonly isPicked$: Observable<boolean>;
    private readonly isSelfDisabled$;
    readonly isDisabled$: Observable<boolean>;
    constructor(selectStateService: SelectStateServiceDeclaration<T>);
    processMouseOver(): void;
    processMouseLeave(): void;
    ngOnChanges(changes: ComponentChanges<this>): void;
    processClick(): void;
    private processValueChange;
    private processIsDisabledChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectOptionBase<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SelectOptionBase<any>, never, never, {}, {}, never, never, false>;
}
