import { EventEmitter, OnInit } from '@angular/core';
import { Subject } from 'rxjs';
import { IconService } from 'carbon-components-angular';
import { FormioCustomComponent } from '../../../../modules';
import { ColumnConfig, SelectItem, SortState } from '../../../../models';
import { ColumnFilterConfig, ObjectManagementSelectValue } from './object-management-select.model';
import { ObjectManagementSelectService } from './object-management-select.service';
import * as i0 from "@angular/core";
export declare class ObjectManagementSelectComponent implements FormioCustomComponent<ObjectManagementSelectValue[]>, OnInit {
    private readonly _service;
    private readonly _iconService;
    disabled: boolean;
    label: string;
    validate?: {
        required?: boolean;
        minLength?: number;
        maxLength?: number;
    };
    valueFormat: 'id' | 'full' | 'columns';
    valueChange: EventEmitter<ObjectManagementSelectValue[]>;
    private _carbonList?;
    private _selectionList?;
    tableFields: ColumnConfig[];
    tableItems: any[];
    loading: boolean;
    pagination: {
        page: number;
        size: number;
        collectionSize: number;
    };
    currentSort: {
        key: string;
        direction: 'asc' | 'desc';
    } | null;
    initialSortState: SortState | null;
    filterValues: {
        [key: string]: any;
    };
    filterableColumns: ColumnFilterConfig[];
    filtersExpanded: boolean;
    dropdownOptionsMap: {
        [key: string]: SelectItem[];
    };
    clearInputs$: Subject<null>;
    clearSelects$: Subject<void>;
    accumulatedSelections: ObjectManagementSelectValue[];
    selectionTableItems: any[];
    selectionSort: {
        key: string;
        direction: 'asc' | 'desc';
    } | null;
    private _objectManagementId;
    private _objectManagementTitle;
    private _columns;
    private _pageSize;
    private _initialized;
    private _hydrated;
    private _requestSequence;
    private readonly _idSelectionFields;
    constructor(_service: ObjectManagementSelectService, _iconService: IconService);
    set objectManagementId(val: string);
    get objectManagementId(): string;
    set objectManagementTitle(val: string);
    get objectManagementTitle(): string;
    set columns(val: ColumnFilterConfig[]);
    get columns(): ColumnFilterConfig[];
    set pageSize(val: number);
    get pageSize(): number;
    set value(val: ObjectManagementSelectValue[]);
    get value(): ObjectManagementSelectValue[] | undefined;
    get canAddMore(): boolean;
    get showFilters(): boolean;
    get selectionFields(): ColumnConfig[];
    private get _hasConfigIdentifier();
    ngOnInit(): void;
    onSort(event: any): void;
    onPageChange(page: number): void;
    onPageSizeChange(size: number): void;
    onSearch(): void;
    onClearFilters(): void;
    onAddSelection(): void;
    onRemoveSelectedSelections(): void;
    onSelectionSort(event: any): void;
    onClearSelections(): void;
    loadData(): void;
    private _loadData;
    private _resetConfigState;
    private _fetchObjects;
    private _initializeColumns;
    private _parseDropdownOptions;
    private _mapViewType;
    private _mapObjectToRow;
    private _getNestedValue;
    private _isAlreadySelected;
    private _updateLockedState;
    private _buildDataAttrsString;
    private _sanitizeFilterValue;
    private _buildSortString;
    private _isDataColumn;
    private _isFilterableColumn;
    private _isSortableColumn;
    private _pathToDataAttr;
    private _formatSelectionValue;
    private _setNestedValue;
    private _updateSelectionTableItems;
    private _emitValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<ObjectManagementSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ObjectManagementSelectComponent, "valtimo-object-management-select", never, { "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "validate": { "alias": "validate"; "required": false; }; "valueFormat": { "alias": "valueFormat"; "required": false; }; "objectManagementId": { "alias": "objectManagementId"; "required": false; }; "objectManagementTitle": { "alias": "objectManagementTitle"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
//# sourceMappingURL=object-management-select.component.d.ts.map