import { EventEmitter } from "../../stencil-public-runtime";
import { TreeViewModel } from "@genexus/chameleon-controls-library";
export declare class GxIdeNavigationReport {
    #private;
    el: HTMLGxIdeNavigationReportElement;
    reportTreeItems: TreeViewModel;
    navigationItemsStatusRegExpString: string;
    navigationItemsStatusRegExpStringChanged(): void;
    navigationItemsCaptionRegExpString: string;
    navigationItemsCaptionRegExpStringChanged(): void;
    navigationItemsRegExp: RegExp;
    confirmed: boolean;
    headerState: "none" | "create" | "reorganize";
    statusInfo: StatusInfo;
    someStatusVisible: boolean;
    /**
     * The header data to display on the header.
     */
    readonly headerData: HeaderData;
    /**
     * Callback invoked when user confirms data base reorganization
     */
    readonly confirmCallback: ConfirmCallback;
    /**
     * Callback invoked when user cancels reorganization
     */
    readonly cancelCallback: CancelCallback;
    /**
     * Callback to be invoked when the user closes the dialog
     */
    readonly closeCallback: CloseCallback;
    /**
     * Callback invoked when a list item is selected
     */
    readonly itemSelectedCallback: ItemSelectedCallback;
    /**
     * @description Gets fired when the component has rendered for the first time.
     */
    componentDidRenderEvent: EventEmitter<string>;
    /**
     * Add a new item
     */
    addItem(item: NavigationData): Promise<void>;
    /**
     * Clear items
     */
    clearItems(): Promise<void>;
    componentWillLoad(): Promise<void>;
    render(): any;
}
export type NavigationData = {
    id: string;
    result: Status;
    icon: string;
    name: string;
};
export type ConfirmCallback = () => Promise<void>;
export type CancelCallback = () => Promise<void>;
export type CloseCallback = () => Promise<void>;
export type ItemSelectedCallback = (id: string) => Promise<void>;
type StatusInfo = {
    error: {
        display: boolean;
        number: number;
    };
    warning: {
        display: boolean;
        number: number;
    };
    success: {
        display: boolean;
        number: number;
    };
};
export type HeaderData = {
    title: string;
    description: string;
    buttons: HeaderButtonData[];
};
export type HeaderButtonData = {
    caption: string;
    icon?: string;
    type?: headerButtonType;
    callback: () => Promise<void>;
};
export type headerButtonType = "button-primary" | "button-secondary";
export type Status = "success" | "error" | "warning";
export {};
