import { EventEmitter } from "../../stencil-public-runtime";
import { TreeViewItemModel } from "@genexus/chameleon-controls-library";
import { ImportCategoryData, ImportItemResultData, ContextMenuInfo } from "../../common/types";
export declare class GxIdeKbManagerImport {
    #private;
    el: HTMLGxIdeKbManagerImportElement;
    selectAllCheckboxValue: string;
    selectAllCheckboxIndeterminate: boolean;
    hasSelection: boolean;
    importStatusMessage: string;
    importTreeState: TreeViewItemModel[];
    importedTreeFilterRegExp: RegExp;
    importTreeStateChanged(): void;
    importingIsInProcess: boolean;
    importTreeFilterList: string[];
    noImport: boolean;
    noObjects: boolean;
    objectsTreeModel: TreeViewItemModel[];
    showHiddenImportsMessage: boolean;
    someStatusVisible: boolean;
    statusInfo: StatusInfo;
    watchImportTreeStateHandler(): void;
    watchObjectsTreeModelHandler(newState: TreeViewItemModel[]): void;
    /**
     * Callback invoked when user wants to cancel the export process.
     */
    readonly cancelCallback: CancelCallback;
    /**
     * Callback invoked when user wants to initiate the import process.
     */
    readonly importCallback: ImportCallback;
    /**
     * Callback invoked when user wants to load the xpz information
     */
    readonly loadCallback: LoadCallback;
    /**
     * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)
     */
    readonly objectContextMenuCallback: ObjectContextMenuCallback;
    /**
     * Callback invoked when user wants to access the export options.
     */
    readonly optionsCallback: OptionsCallback;
    /**
     * Imported xml or xps file name
     */
    selectedFile: File;
    selectedFileChanged(newFile: File): void;
    /**
     * Displays status buttons (error, warning, success) with minimal UI (no captions).
     */
    readonly statusMinimal = false;
    /**
     * Emitted once just after the component is fully loaded.
     */
    componentDidLoadEvent: EventEmitter<boolean>;
    /**
     * Emitted once just after the component is fully loaded and the first render() occurs
     */
    componentDidRenderFirstTime: EventEmitter<boolean>;
    componentDidLoad(): void;
    componentDidRender(): void;
    componentWillLoad(): Promise<void>;
    /**
     * Add the result of importing an item
     */
    addResultItem(item: ImportItemResultData): Promise<void>;
    render(): void;
}
export type CancelCallback = () => Promise<boolean>;
/**
 * Payload passed to `importCallback` describing the user's selection.
 *
 * - When `importAll` is `true`, the server imports every object in the file
 *   except those listed in `excludedObjectIds` (`objectIds` is `[]`).
 * - When `importAll` is `false`, the server imports only `objectIds`
 *   (`excludedObjectIds` is `[]`) — the legacy explicit-selection mode.
 *
 * The component picks the variant with the smaller list to minimize body size.
 */
export type ImportOptions = {
    importAll: boolean;
    objectIds: string[];
    excludedObjectIds: string[];
};
export type ImportCallback = (importOptions: ImportOptions) => Promise<boolean>;
export type ImportItemData = {
    id: string;
    name: string;
};
export type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;
export type ObjectContextMenuCallback = (tree: ObjectsSourceType, contextMenuInfo: ContextMenuInfo) => Promise<void>;
export type ObjectsSourceType = "in-file" | "imported";
export type OptionsCallback = () => Promise<void>;
export interface SelectedObject {
    itemId: string;
    subItemsIds: string[];
}
export type StatusItemsState = {
    error: string[];
    warning: string[];
    success: string[];
};
type StatusInfo = {
    error: {
        display: boolean;
        number: number;
    };
    warning: {
        display: boolean;
        number: number;
    };
    success: {
        display: boolean;
        number: number;
    };
};
export type CategoryItemMap = Map<string, CategoryItemMapValue>;
export type CategoryItemMapValue = {
    name: string;
    icon: string;
};
export type ObjectCategoryItemMap = Map<string, string>;
export type Status = "success" | "error" | "warning";
export {};
