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 the ordinal versionId of the selected version (undefined installs the latest). */ readonly installCallback: (versionId?: number) => Promise; /** * When set, the component is installing this plugin and shows a determinate progress bar * instead of the action button. */ readonly installProgress?: PluginInstallProgress; /** * Callback that should be invoked when the user cancels an in-progress * install/update from the progress bar. */ readonly cancelCallback: () => Promise; /** * Callback that should be invoked when the user attempts to open any link displayed in this component. */ readonly openLinkCallback: (url: string) => Promise; /** * Callback that should be invoked when the user performs the uninstall action. */ readonly uninstallCallback: () => Promise; componentWillLoad(): Promise; 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 PluginVersionOption = { version: string; versionId: number; }; export type PluginInstallProgress = { phase: "download" | "install"; percent: number; }; export type PluginDetailsData = { id: string; name: string | LinkData; publisher: string | LinkData; installed: boolean; updateVersion?: string; versions: PluginVersionOption[]; iconUrl: string; description: string; docSections: DocSectionData[]; infoCategories: PluginInfoCategoryData[]; };