import { TabModel } from "@genexus/chameleon-controls-library";
export declare class GxIdePluginDetails {
    #private;
    el: HTMLGxIdePluginDetailsElement;
    docsTabModel: TabModel;
    selectedTabId: string;
    /**
     * Specifies all the information related to a plugin.
     */
    readonly data: PluginDetailsData;
    /**
     * Callback that should be invoked when the user performs the install or update action.
     * Receives an optional version string when a specific version is selected.
     */
    readonly installCallback: (version?: string) => Promise<void>;
    /**
     * Callback that should be invoked when the user attempts to open any link displayed in this component.
     */
    readonly openLinkCallback: (url: string) => Promise<void>;
    /**
     * Callback that should be invoked when the user performs the uninstall action.
     */
    readonly uninstallCallback: () => Promise<void>;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    render(): any;
}
export type LinkData = {
    text: string;
    url: string;
};
export type PluginFieldData = {
    name?: string;
    value: string | LinkData;
};
export type PluginInfoCategoryData = {
    name: string;
    fields: PluginFieldData[];
    displayAsTags: boolean;
};
export type DocSectionData = {
    name: string;
    content: string;
};
export type PluginDetailsData = {
    id: string;
    name: string | LinkData;
    publisher: string | LinkData;
    installed: boolean;
    updateVersion?: string;
    versions: string[];
    iconUrl: string;
    description: string;
    docSections: DocSectionData[];
    infoCategories: PluginInfoCategoryData[];
};
