import { TreeViewItemModel } from "@genexus/chameleon-controls-library";
import { ContextMenuInfo } from "../../common/types";
export declare class GxIdeSelectKbItems {
    #private;
    el: HTMLGxIdeSelectKbItemsElement;
    /**
     * Represents the active version node caption and icon (if any)
     */
    activeItemNode: ActiveNode;
    /**
     * Represents the selected nodes ids
     */
    checkedNodesIds: string[];
    /**
     * If true, the footer will be rendered
     */
    renderFooter: boolean;
    /**
     * Represents the nodes list model
     */
    nodeListFlattenedTreeModel: TreeViewItemModel[];
    /**
     * To show a loader when the component is loading
     */
    loading: boolean;
    /**
     * View type for the nodes.
     */
    nodesVersionsViewType: NodesVersionsViewType;
    /**
     * Represents the nodes tree model
     */
    nodeVersionsListTreeModel: TreeViewItemModel[];
    /**
     * "Search Pattern" input value, used to filter the nodes tree/list.
     */
    searchPatternValue: string;
    /**
     * It maps to the ch-tree-view-render "toggleCheckboxes" property.
     */
    toggleCheckboxes: boolean;
    /**
     * Represents the itemLis list model
     */
    itemsList: ItemNode[];
    /**
     * Callback emitted when the user clicks on the "Active item"
     */
    readonly activeItemCallback?: () => Promise<void>;
    /**
     * Callback emitted when the 'cancel' button is pressed
     */
    readonly cancelCallback?: () => Promise<void>;
    /**
     * Defines which nodes of the component have checkboxes.
     */
    readonly checkboxType: CheckboxType;
    /**
     * Define if a item node is expanded on click interaction. If false item-node will only be expanded on double click.
     */
    readonly expandOnClick: boolean;
    /**
     * Callback emitted when the items checked items change
     */
    readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;
    /**
     * Callback emitted when the 'select' button is pressed
     */
    readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;
    /**
     * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)
     */
    readonly dialogActions: DialogAction[];
    /**
     * Callback emitted when the user right click on an item
     */
    readonly itemContextMenuCallback: (info: ContextMenuInfo) => Promise<void>;
    /**
     * Callback to load the items list model
     */
    readonly loadItemsCallback: () => Promise<ItemNode[]>;
    /**
     * Used to define if the component must show the "Toggle Checkboxes" option or not
     */
    readonly showToggleCheckboxes: boolean;
    /**
     * This define if the selection is unique or not
     */
    readonly multiSelection?: boolean;
    /**
     * This define if the checks are unique or not
     */
    readonly singleChecks?: boolean;
    /**
     * Used to define if the component must show the "Active item" link or not
     */
    readonly showActiveItemLink?: boolean;
    /**
     * Defines whether to show a loader while loading items
     */
    readonly useLoader?: boolean;
    /**
     * Callback emitted when the items selection change
     */
    readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;
    componentWillLoad(): Promise<void>;
    reloadItems(): Promise<void>;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    /**
     * Allow to update the selected items
     */
    updateSelection(selectedItemsIds: string[]): Promise<void>;
    /**
     * Allow to update the checked items
     */
    updateCheckedItems(checkedItemsIds: string[]): Promise<void>;
    render(): any;
}
export type CheckboxType = "none" | "all" | "leaf" | "custom";
export type DialogAction = {
    name: string;
    callback: DialogActionCallback;
};
export type DialogActionCallback = (...args: any[]) => void;
export type ItemCommon = {
    icon: string;
    expanded: boolean;
};
export type ItemNode = {
    active?: boolean;
    checkbox?: boolean;
    checked?: boolean;
    expanded?: boolean;
    iconStart?: string;
    iconEnd?: string;
    id: string;
    name: string;
    guid?: string;
    nodes?: ItemNode[];
    parts?: string;
    selected?: boolean;
    type?: ItemType;
    order?: number;
};
export type ActiveNode = {
    caption: string;
    iconStart?: string;
    path: string[];
};
export type ItemType = {
    id: string;
    name: string;
};
type NodesVersionsViewType = "tree" | "list";
export {};
