import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';
import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';
import { PickListItem } from './types';
import * as i0 from "@angular/core";
interface InternalPicklistItem<T = any> extends PickListItem<T> {
    invisible?: boolean;
    selected?: boolean;
}
type CdkDragEvent = {
    source: CdkDrag<InternalPicklistItem<any>>;
};
export declare class PicklistComponent implements AfterViewInit, OnChanges {
    private cdr;
    itensToSelect: PickListItem<any>[];
    selectedItens: PickListItem<any>[];
    availableItensLabel?: string;
    availableItensPlaceholder?: string;
    addSelectedItensLabel?: string;
    addAllItensLabel?: string;
    selectedItensLabel?: string;
    selectedItensPlaceholder?: string;
    removeSelectedItemsLabel?: string;
    removeAllItemsLabel?: string;
    showCheckbox: boolean;
    filterBy: string;
    selectedItensChange: EventEmitter<any[]>;
    itensToSelectChange: EventEmitter<any[]>;
    availableItensFilter: string;
    selectedItensFilter: string;
    itemToSelectTemplate: TemplateRef<any> | null;
    itemSelectedTemplate: TemplateRef<any> | null;
    itensToSelectFilterUtil: {
        rawItensToSelect: InternalPicklistItem[];
        filteredItensToSelect: InternalPicklistItem[];
    };
    selectedItensFilterUtil: {
        rawSelectedItens: InternalPicklistItem[];
        filteredSelectedItens: InternalPicklistItem[];
    };
    selectedItensMap: Set<InternalPicklistItem>;
    itensToSelectId: string;
    selectedItensId: string;
    private _logErrorTemplate;
    private templates;
    constructor(cdr: ChangeDetectorRef);
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    toggleSelected(internalPicklistItem: InternalPicklistItem, containerListId: string): void;
    remove(all?: boolean): void;
    add(all?: boolean): void;
    filterItensToSelect(): void;
    filterSelectedItens(): void;
    drop(event: CdkDragDrop<InternalPicklistItem[]>): void;
    onDragStart(event: CdkDragEvent, dragListId: string): void;
    onDragRelease(): void;
    checkAllAvailableItensChange(target: HTMLInputElement): void;
    checkAllSelectedItensChange(target: HTMLInputElement): void;
    get disableSelectedItensCheckbox(): boolean;
    get disableItensToSelectCheckbox(): boolean;
    get itensToSelectAllSelected(): boolean;
    get selectedItensAllSelected(): boolean;
    get canAddItens(): boolean;
    get canRemoveItens(): boolean;
    private _checkAllSelectedByList;
    private _checkAllSelectedItensChange;
    private unselectedItensByListId;
    private getAllElementsByListId;
    private getOppositiveId;
    private emitData;
    static ɵfac: i0.ɵɵFactoryDeclaration<PicklistComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PicklistComponent, "s-picklist", never, { "itensToSelect": { "alias": "itensToSelect"; "required": false; }; "selectedItens": { "alias": "selectedItens"; "required": false; }; "availableItensLabel": { "alias": "availableItensLabel"; "required": false; }; "availableItensPlaceholder": { "alias": "availableItensPlaceholder"; "required": false; }; "addSelectedItensLabel": { "alias": "addSelectedItensLabel"; "required": false; }; "addAllItensLabel": { "alias": "addAllItensLabel"; "required": false; }; "selectedItensLabel": { "alias": "selectedItensLabel"; "required": false; }; "selectedItensPlaceholder": { "alias": "selectedItensPlaceholder"; "required": false; }; "removeSelectedItemsLabel": { "alias": "removeSelectedItemsLabel"; "required": false; }; "removeAllItemsLabel": { "alias": "removeAllItemsLabel"; "required": false; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; "filterBy": { "alias": "filterBy"; "required": false; }; }, { "selectedItensChange": "selectedItensChange"; "itensToSelectChange": "itensToSelectChange"; }, ["templates"], never, false, never>;
}
export declare const parseItensPickList: <T>(array: T[], disabledFn?: (item: T) => boolean) => PickListItem<T>[];
export {};
