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;
    outerInput: 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;
    tagMaxWidth: string;
    showAnimation: boolean;
    styleType: string;
    set loadChildrenFn(fn: (value: CascaderItem) => Promise<CascaderItem[]> | Observable<CascaderItem[]>);
    toggleEvent: EventEmitter<boolean>;
    showGlowStyle: boolean;
    get hasGlowStyle(): 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(changes: 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;
    updateMultipleValuePathList(): 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": { "alias": "options"; "required": false; }; "width": { "alias": "width"; "required": false; }; "dropdownWidth": { "alias": "dropdownWidth"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "showPath": { "alias": "showPath"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "allowSearch": { "alias": "allowSearch"; "required": false; }; "canSelectParent": { "alias": "canSelectParent"; "required": false; }; "checkboxRelation": { "alias": "checkboxRelation"; "required": false; }; "dropDownItemTemplate": { "alias": "dropDownItemTemplate"; "required": false; }; "dropdownHeaderTemplate": { "alias": "dropdownHeaderTemplate"; "required": false; }; "hostTemplate": { "alias": "hostTemplate"; "required": false; }; "dropdownPanelClass": { "alias": "dropdownPanelClass"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "tagMaxWidth": { "alias": "tagMaxWidth"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "styleType": { "alias": "styleType"; "required": false; }; "loadChildrenFn": { "alias": "loadChildrenFn"; "required": false; }; "showGlowStyle": { "alias": "showGlowStyle"; "required": false; }; }, { "toggleEvent": "toggleEvent"; }, never, never, false, never>;
}
