import { AfterViewInit, ElementRef, NgZone, OnDestroy } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { DropdownDirectiveParams } from '../../../declarations/interfaces/dropdown-directive-params.interface';
import { DropdownHost } from '../../../declarations/interfaces/dropdown-host.interface';
import { ThemeService } from '@bimeister/pupakit.common';
import { DropdownsService } from '../../../services/dropdowns.service';
import { ThemeWrapperService } from '../../theme-wrapper/services/theme-wrapper.service';
import * as i0 from "@angular/core";
export declare class DropdownDirective implements AfterViewInit, OnDestroy, DropdownHost {
    readonly triggerRef: ElementRef<HTMLElement>;
    private readonly dropdownsService;
    private readonly ngZone;
    private readonly themeService;
    private readonly document;
    private readonly themeWrapperService?;
    pupaDropdownDisabled: boolean;
    pupaDropdownRealTriggerElement?: HTMLElement;
    cursorStyle: string;
    readonly opened$: BehaviorSubject<boolean>;
    private readonly theme$;
    private readonly subscription;
    private readonly isTriggerTouched$;
    private dropdown;
    private outsideTouchEventSubscription;
    private params;
    constructor(triggerRef: ElementRef<HTMLElement>, dropdownsService: DropdownsService, ngZone: NgZone, themeService: ThemeService, document: Document, themeWrapperService?: ThemeWrapperService);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setDropdownParams(params: DropdownDirectiveParams): void;
    open(): void;
    close(): void;
    toggle(): void;
    private handleTriggerClickEvents;
    private handleTriggerTouchEvents;
    private handleOutsideTriggerTouchEvents;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropdownDirective, [null, null, null, null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownDirective, "[pupaDropdown]", ["pupaDropdown"], { "pupaDropdownDisabled": "pupaDropdownDisabled"; "pupaDropdownRealTriggerElement": "pupaDropdownRealTriggerElement"; }, {}, never, never, false>;
}
