import { EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { TableVirtualScrollDataSource } from '@metad/ocap-angular/common';
import { NgmAppearance } from '@metad/ocap-angular/core';
import { DataSettings, Dimension, FilterSelectionType, IDimensionMember, ISlicer } from '@metad/ocap-core';
import { ControlOptions } from '../types';
import * as i0 from "@angular/core";
export interface MemberTableOptions extends ControlOptions {
    label?: string;
    placeholder?: string;
    maxTagCount?: number;
    autoActiveFirst?: boolean;
    stickyHeader?: boolean;
}
export interface MemberTableState {
    slicer: ISlicer;
    options?: MemberTableOptions;
}
export declare class NgmMemberTableComponent<T> implements ControlValueAccessor {
    _isMemberTableComponent: boolean;
    private smartFilterService;
    private _dataSettings;
    get dataSettings(): DataSettings;
    set dataSettings(value: DataSettings);
    private _dimension;
    get dimension(): Dimension;
    set dimension(value: Dimension);
    private _options;
    get options(): MemberTableOptions;
    set options(value: MemberTableOptions);
    private _appearance;
    get appearance(): NgmAppearance;
    set appearance(value: NgmAppearance);
    loadingChanging: EventEmitter<boolean>;
    slicer: import("@angular/core").WritableSignal<ISlicer>;
    itemSize: number;
    searchControl: FormControl<any>;
    dataSource: TableVirtualScrollDataSource<T>;
    readonly options$: import("rxjs").Observable<MemberTableOptions>;
    readonly selectionType$: import("rxjs").Observable<FilterSelectionType>;
    readonly multiple$: import("rxjs").Observable<boolean>;
    readonly slicer$: import("rxjs").Observable<ISlicer>;
    readonly results$: import("rxjs").Observable<import("@metad/ocap-core").QueryReturn<IDimensionMember>>;
    readonly schema$: import("rxjs").Observable<import("@metad/ocap-core").EntitySchema>;
    readonly columns$: import("rxjs").Observable<(import("@metad/ocap-core").Property & import("@metad/ocap-core").PivotColumn)[]>;
    readonly displayedColumns$: import("rxjs").Observable<string[]>;
    readonly loading$: import("rxjs").BehaviorSubject<boolean>;
    onChange: (input: any) => void;
    private loadingSub;
    private serviceSub;
    private slicerSub;
    private resultSub;
    private searchSub;
    constructor();
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    /** Whether the number of selected elements matches the total number of rows. */
    isAllSelected(): boolean;
    /** Selects all rows if they are not all selected; otherwise clear selection. */
    masterToggle(): void;
    hasMember(): boolean;
    isSelected(row: IDimensionMember): boolean;
    toggleMember(row: T): void;
    selectMembers(members: T[]): void;
    clearMembers(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmMemberTableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmMemberTableComponent<any>, "ngm-member-table", never, { "dataSettings": { "alias": "dataSettings"; "required": false; }; "dimension": { "alias": "dimension"; "required": false; }; "options": { "alias": "options"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, { "loadingChanging": "loadingChanging"; }, never, never, true, never>;
}
