import { AnimationEvent } from '@angular/animations';
import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnInit, QueryList, TemplateRef } from '@angular/core';
import { OverlayOptions, OverlayService, PrimeNGConfig } from 'primeng/api';
import { Overlay } from 'primeng/overlay';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "primeng/overlay";
import * as i3 from "primeng/api";
import * as i4 from "primeng/ripple";
export declare const CASCADESELECT_VALUE_ACCESSOR: any;
export declare class CascadeSelectSub implements OnInit {
    private el;
    selectionPath: any[];
    options: any[];
    optionGroupChildren: any[];
    optionTemplate: TemplateRef<any>;
    level: number;
    optionLabel: string;
    optionValue: string;
    optionGroupLabel: string;
    dirty: boolean;
    root: boolean;
    onSelect: EventEmitter<any>;
    onGroupSelect: EventEmitter<any>;
    get parentActive(): boolean;
    set parentActive(val: boolean);
    activeOption: any;
    _parentActive: boolean;
    cascadeSelect: CascadeSelect;
    constructor(cascadeSelect: any, el: ElementRef);
    ngOnInit(): void;
    onOptionClick(event: any, option: any): void;
    onOptionSelect(event: any): void;
    onOptionGroupSelect(event: any): void;
    getOptionLabel(option: any): any;
    getOptionValue(option: any): any;
    getOptionGroupLabel(optionGroup: any): any;
    getOptionGroupChildren(optionGroup: any): any;
    isOptionGroup(option: any): any;
    getOptionLabelToRender(option: any): any;
    getItemClass(option: any): {
        'p-cascadeselect-item': boolean;
        'p-cascadeselect-item-group': any;
        'p-cascadeselect-item-active p-highlight': boolean;
    };
    isOptionActive(option: any): boolean;
    onKeyDown(event: any, option: any, index: any): void;
    position(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CascadeSelectSub, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CascadeSelectSub, "p-cascadeSelectSub", never, { "selectionPath": "selectionPath"; "options": "options"; "optionGroupChildren": "optionGroupChildren"; "optionTemplate": "optionTemplate"; "level": "level"; "optionLabel": "optionLabel"; "optionValue": "optionValue"; "optionGroupLabel": "optionGroupLabel"; "dirty": "dirty"; "root": "root"; "parentActive": "parentActive"; }, { "onSelect": "onSelect"; "onGroupSelect": "onGroupSelect"; }, never, never, false, never>;
}
export declare class CascadeSelect implements OnInit, AfterContentInit {
    private el;
    private cd;
    private config;
    overlayService: OverlayService;
    styleClass: string;
    style: any;
    options: any[];
    optionLabel: string;
    optionValue: string;
    optionGroupLabel: string;
    optionGroupChildren: any[];
    placeholder: string;
    value: string;
    dataKey: string;
    inputId: string;
    tabindex: string;
    ariaLabelledBy: string;
    inputLabel: string;
    ariaLabel: string;
    appendTo: any;
    disabled: boolean;
    rounded: boolean;
    showClear: boolean;
    panelStyleClass: string;
    panelStyle: object;
    overlayOptions: OverlayOptions;
    focusInputEl: ElementRef;
    containerEl: ElementRef;
    panelEl: ElementRef;
    overlayViewChild: Overlay;
    onChange: EventEmitter<any>;
    onGroupChange: EventEmitter<any>;
    onShow: EventEmitter<any>;
    onHide: EventEmitter<any>;
    onClear: EventEmitter<any>;
    onBeforeShow: EventEmitter<any>;
    onBeforeHide: EventEmitter<any>;
    templates: QueryList<any>;
    _showTransitionOptions: string;
    get showTransitionOptions(): string;
    set showTransitionOptions(val: string);
    _hideTransitionOptions: string;
    get hideTransitionOptions(): string;
    set hideTransitionOptions(val: string);
    selectionPath: any;
    focused: boolean;
    filled: boolean;
    overlayVisible: boolean;
    dirty: boolean;
    valueTemplate: TemplateRef<any>;
    optionTemplate: TemplateRef<any>;
    onModelChange: Function;
    onModelTouched: Function;
    constructor(el: ElementRef, cd: ChangeDetectorRef, config: PrimeNGConfig, overlayService: OverlayService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    onOptionSelect(event: any): void;
    onOptionGroupSelect(event: any): void;
    getOptionLabel(option: any): any;
    getOptionValue(option: any): any;
    getOptionGroupChildren(optionGroup: any, level: any): any;
    isOptionGroup(option: any, level: any): any;
    updateSelectionPath(): void;
    updateFilledState(): void;
    findModelOptionInGroup(option: any, level: any): any;
    show(): void;
    hide(): void;
    clear(event: any): void;
    onClick(event: any): void;
    onFocus(): void;
    onBlur(): void;
    onOverlayAnimationDone(event: AnimationEvent): void;
    writeValue(value: any): void;
    registerOnChange(fn: Function): void;
    registerOnTouched(fn: Function): void;
    setDisabledState(val: boolean): void;
    label(): any;
    onKeyDown(event: any): void;
    containerClass(): {
        'p-cascadeselect p-component p-inputwrapper': boolean;
        'p-disabled': boolean;
        'p-focus': boolean;
    };
    labelClass(): {
        'p-cascadeselect-label': boolean;
        'p-inputtext': boolean;
        'p-placeholder': boolean;
        'p-cascadeselect-label-empty': boolean;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<CascadeSelect, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CascadeSelect, "p-cascadeSelect", never, { "styleClass": "styleClass"; "style": "style"; "options": "options"; "optionLabel": "optionLabel"; "optionValue": "optionValue"; "optionGroupLabel": "optionGroupLabel"; "optionGroupChildren": "optionGroupChildren"; "placeholder": "placeholder"; "value": "value"; "dataKey": "dataKey"; "inputId": "inputId"; "tabindex": "tabindex"; "ariaLabelledBy": "ariaLabelledBy"; "inputLabel": "inputLabel"; "ariaLabel": "ariaLabel"; "appendTo": "appendTo"; "disabled": "disabled"; "rounded": "rounded"; "showClear": "showClear"; "panelStyleClass": "panelStyleClass"; "panelStyle": "panelStyle"; "overlayOptions": "overlayOptions"; "showTransitionOptions": "showTransitionOptions"; "hideTransitionOptions": "hideTransitionOptions"; }, { "onChange": "onChange"; "onGroupChange": "onGroupChange"; "onShow": "onShow"; "onHide": "onHide"; "onClear": "onClear"; "onBeforeShow": "onBeforeShow"; "onBeforeHide": "onBeforeHide"; }, ["templates"], never, false, never>;
}
export declare class CascadeSelectModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<CascadeSelectModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<CascadeSelectModule, [typeof CascadeSelect, typeof CascadeSelectSub], [typeof i1.CommonModule, typeof i2.OverlayModule, typeof i3.SharedModule, typeof i4.RippleModule], [typeof CascadeSelect, typeof i2.OverlayModule, typeof CascadeSelectSub, typeof i3.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<CascadeSelectModule>;
}
