import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { MatSelectionListChange } from '@angular/material/list';
import { MatRadioChange } from '@angular/material/radio';
import { NgmAppearance } from '@metad/ocap-angular/core';
import { DataSettings, Dimension, DisplayBehaviour, IMember } from '@metad/ocap-core';
import { BehaviorSubject } from 'rxjs';
import { ControlOptions } from '../types';
import * as i0 from "@angular/core";
export interface MemberListOptions extends ControlOptions {
    /**
     * Hiden radio indicator for signle selection
     */
    hideSingleSelectionIndicator?: boolean;
}
export declare class NgmMemberListComponent implements OnChanges, ControlValueAccessor {
    _isMemberListComponent: boolean;
    private readonly smartFilterService;
    dataSettings: DataSettings;
    private _dimension;
    get dimension(): Dimension;
    set dimension(value: Dimension);
    private _options;
    get options(): MemberListOptions;
    set options(value: MemberListOptions);
    appearance: NgmAppearance;
    disabled: boolean;
    loadingChanging: EventEmitter<boolean>;
    itemSize: number;
    searchControl: FormControl<any>;
    get displayBehaviour(): DisplayBehaviour;
    readonly multiple: import("@angular/core").Signal<boolean>;
    readonly hideSingleSelectionIndicator: import("@angular/core").Signal<boolean>;
    private slicer$;
    get members(): IMember[];
    readonly loading$: BehaviorSubject<boolean>;
    private readonly members$;
    private _members;
    readonly selectOptions: import("@angular/core").Signal<IMember[]>;
    onChange: (input: any) => void;
    private loadingSub;
    private serviceSub;
    private slicerSub;
    constructor();
    ngOnChanges({ dataSettings, appearance }: SimpleChanges): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    clearSearch(event: any): void;
    compareWith(a: IMember, b: IMember): boolean;
    onSelectionChange(selection: MatSelectionListChange): void;
    isSelected(option: IMember): boolean;
    onRadioChange(event: MatRadioChange): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmMemberListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmMemberListComponent, "ngm-member-list", never, { "dataSettings": { "alias": "dataSettings"; "required": false; }; "dimension": { "alias": "dimension"; "required": false; }; "options": { "alias": "options"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "loadingChanging": "loadingChanging"; }, never, never, true, never>;
}
