import { TreeViewModel } from "@genexus/chameleon-controls-library";
export declare class GxIdeSearch {
    #private;
    el: HTMLGxIdeSearchElement;
    /**
     * Holds the search results as a TreeViewModel
     */
    searchResultModel: TreeViewModel;
    /**
     * Tracks if a search has been performed
     */
    hasSearched: boolean;
    /**
     * Tracks if a search is currently in progress
     */
    isSearching: boolean;
    /**
     * Indicates whether a Knowledge Base is currently open
     */
    readonly isKbOpen: boolean;
    valueChangeHandler(newValue: boolean): void;
    /**
     * Callback to fetch search results
     */
    readonly searchCallback: (searchParams: SearchParamsData) => Promise<SearchResultData[]>;
    /**
     * Callback invoked when a search result item is double-clicked
     */
    readonly itemDoubleClickCallback?: ItemDoubleClickCallback;
    /**
     * Method to show or hide the settings panel, can be called from the outside to control the visibility of the settings
     */
    showSettings(_show: boolean): Promise<void>;
    componentWillLoad(): Promise<void>;
    render(): any;
}
export type SearchResultData = {
    objectId: string;
    objectName: string;
    objectTypeName: string;
    objectTypeId: string;
    objectModuleName: string;
    objectUri: string;
    objectIcon: string;
    content: string;
    preview: string;
};
export type SearchParamsData = {
    moduleGuid?: string;
    objectTypeName?: string;
    text: string;
    tags?: string;
    count?: number;
    onlyTitles: boolean;
    includeSubModules: boolean;
    allBranches: boolean;
    forLLM: boolean;
};
export type ItemDoubleClickCallback = (itemId: string) => Promise<void>;
export type SearchCallback = (searchParams: SearchParamsData) => Promise<SearchResultData[]>;
