import { ConnectedPosition } from '@angular/cdk/overlay';
import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DropDownAppendToBodyComponent, DropDownDirective } from 'ng-devui/dropdown';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { DevConfigService } from 'ng-devui/utils';
import { Observable, Subject, Subscription } from 'rxjs';
import { CascaderService } from './cascader.service';
import { CascaderItem } from './cascader.type';
import * as i0 from "@angular/core";
export declare class CascaderComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {
    private cascaderSrv;
    private i18n;
    private devConfigService;
    mainDropdown: DropDownDirective;
    innerInput: ElementRef;
    dropdownComp: DropDownAppendToBodyComponent;
    options: CascaderItem[];
    width: number;
    dropdownWidth: number;
    placeholder: string;
    trigger: 'click' | 'hover';
    disabled: boolean;
    multiple: boolean;
    showPath: boolean;
    allowClear: boolean;
    allowSearch: boolean;
    canSelectParent: boolean;
    checkboxRelation: {
        upward: boolean;
        downward: boolean;
    };
    dropDownItemTemplate: TemplateRef<any>;
    dropdownHeaderTemplate: TemplateRef<any>;
    hostTemplate: TemplateRef<any>;
    dropdownPanelClass: string;
    appendToBody: boolean;
    showAnimation: boolean;
    set loadChildrenFn(fn: (value: CascaderItem) => Promise<CascaderItem[]> | Observable<CascaderItem[]>);
    toggleEvent: EventEmitter<boolean>;
    subMenuDirections: ConnectedPosition[];
    isLazyLoad: boolean;
    unsubscribe$: Subject<void>;
    searchValueChange: Subject<string>;
    multipleValueList: CascaderItem[];
    lazyloadValue: any[];
    timer: any;
    showTextValue: any;
    showSearchPanel: boolean;
    showSearchInput: boolean;
    onChange: Function;
    onTouched: Function;
    get columnList(): CascaderItem[][];
    get searchResultList(): any[];
    i18nCommonText: I18nInterface['common'];
    i18nSubscription: Subscription;
    constructor(cascaderSrv: CascaderService, i18n: I18nService, devConfigService: DevConfigService);
    getOptionTree(): CascaderItem[];
    ngOnInit(): void;
    ngOnChanges(change: SimpleChanges): void;
    initI18n(): void;
    valueChanges(value: string): void;
    chooseSearchResult(option: any): void;
    initObservale(): void;
    deleteTag(tagEvent: any, option: CascaderItem): void;
    registerOnChange(fn: () => {}): void;
    registerOnTouched(fn: () => {}): void;
    writeValue(value: Array<number | string> | Array<number | string>[]): void;
    getMultipleValueFromValueList(valueList: Array<number | string>[]): CascaderItem[];
    getLabelFromValue(value: Array<number | string>): string;
    getPathLabelFormValue(value: Array<number | string>): string;
    clearTags(): void;
    onToggle(isOpen: boolean): void;
    rePosition(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CascaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CascaderComponent, "d-cascader", never, { "options": "options"; "width": "width"; "dropdownWidth": "dropdownWidth"; "placeholder": "placeholder"; "trigger": "trigger"; "disabled": "disabled"; "multiple": "multiple"; "showPath": "showPath"; "allowClear": "allowClear"; "allowSearch": "allowSearch"; "canSelectParent": "canSelectParent"; "checkboxRelation": "checkboxRelation"; "dropDownItemTemplate": "dropDownItemTemplate"; "dropdownHeaderTemplate": "dropdownHeaderTemplate"; "hostTemplate": "hostTemplate"; "dropdownPanelClass": "dropdownPanelClass"; "appendToBody": "appendToBody"; "showAnimation": "showAnimation"; "loadChildrenFn": "loadChildrenFn"; }, { "toggleEvent": "toggleEvent"; }, never, never, false>;
}
