import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { AfterViewInit, ElementRef, OnInit, TemplateRef } from '@angular/core';
import { Nullable } from '@bimeister/utilities';
import { BehaviorSubject, Observable } from 'rxjs';
import { SelectStateServiceDeclaration } from '../../interfaces/select-state-service-declaration.interface';
import { SelectSize } from '../../types/select-size.type';
import * as i0 from "@angular/core";
export declare abstract class SelectTriggerBase<T> implements OnInit, AfterViewInit {
    protected readonly selectStateService: SelectStateServiceDeclaration<T>;
    protected abstract readonly overlayOrigin: CdkOverlayOrigin;
    protected abstract readonly button: ElementRef<HTMLButtonElement>;
    readonly isExpanded$: BehaviorSubject<boolean>;
    readonly isDisabled$: Observable<boolean>;
    readonly isTouched$: Observable<boolean>;
    readonly isPatched$: Observable<boolean>;
    readonly isValid$: Observable<boolean>;
    readonly isFilled$: Observable<boolean>;
    readonly withReset$: Observable<boolean>;
    readonly inline$: Observable<boolean>;
    readonly size$: Observable<SelectSize>;
    readonly placeholder$: Observable<string>;
    readonly isInvalid$: Observable<boolean>;
    readonly triggerValueIsVisible$: Observable<boolean>;
    readonly isVisibleReset$: Observable<boolean>;
    readonly invalidTooltipHideOnHover$: Observable<boolean>;
    readonly invalidTooltipDisabled$: Observable<boolean>;
    readonly invalidTooltip$: Observable<Nullable<string>>;
    readonly invalidTooltipContentTemplate$: Observable<Nullable<TemplateRef<unknown>>>;
    readonly isInvalidTooltipDisabled$: Observable<boolean>;
    readonly rightPaddingPx$: Observable<number>;
    readonly isContentInit$: BehaviorSubject<boolean>;
    constructor(selectStateService: SelectStateServiceDeclaration<T>);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    processTriggerTouch(): void;
    processButtonClick(): void;
    processEventPropagation(event: Event): void;
    toggleDropdown(event: Event): void;
    reset(): void;
    processButtonInputClick(): void;
    private defineDropdownTrigger;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectTriggerBase<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SelectTriggerBase<any>, never, never, {}, {}, never, never, false>;
}
