import { OptionFilterFn, SelectFilterOption, TrackFn } from '@alauda/ui';
import { EventEmitter, TemplateRef, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { BehaviorSubject } from 'rxjs';
import { StringMap } from '../../core/public-api';
import * as i0 from "@angular/core";
export declare class ResourceMultiSelectComponent implements ControlValueAccessor {
    private readonly cdr;
    list: string[];
    limit: number;
    prefixLabel: string;
    disabled: boolean;
    required: boolean;
    readonly: boolean;
    allOptionTemplate: TemplateRef<any>;
    allOptionTemplateContext: StringMap;
    optionTemplate: TemplateRef<any>;
    placeholder: string;
    countLimited: boolean;
    filter: OptionFilterFn<string>;
    trackBy: TrackFn<string>;
    allowEmpty: boolean;
    valueChange: EventEmitter<string[]>;
    values$$: BehaviorSubject<string[]>;
    values: string[];
    isSelectAllOption: boolean;
    isPartial: boolean;
    ALL_VALUE: string;
    constructor(cdr: ChangeDetectorRef);
    writeValue(values: string[]): void;
    onChange: import("../../core/public-api").Callback;
    onTouched: import("../../core/public-api").Callback;
    registerOnChange(fn: () => void): void;
    registerOnTouched(fn: () => void): void;
    disableOption: (checkedValue: string, values: string[]) => boolean;
    onValueChange(values: string[]): void;
    filterFn: (filter: string, option: SelectFilterOption<string>) => boolean;
    trackByFn: (value: string) => unknown;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceMultiSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ResourceMultiSelectComponent, "acl-resource-multi-select", never, { "list": { "alias": "list"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "prefixLabel": { "alias": "prefixLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "allOptionTemplate": { "alias": "allOptionTemplate"; "required": false; }; "allOptionTemplateContext": { "alias": "allOptionTemplateContext"; "required": false; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "countLimited": { "alias": "countLimited"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
