import { ComboBoxModel, TreeViewItemModel } from "@genexus/chameleon-controls-library";
export declare class GxIdeReferences {
    #private;
    el: HTMLGxIdeReferencesElement;
    /**
     * Displays or hides the header-bottom section
     */
    barHidden: boolean;
    /**
     * Objects suggestions that will appear on the suggest
     */
    objectsSuggestions: ComboBoxModel;
    referencedByTreeData: TreeViewItemModel[];
    referencesToTreeData: TreeViewItemModel[];
    /**
     * Callback invoked when a node is expanded in any references panels
     */
    readonly loadReferencesCallback?: LoadReferencesCallback;
    /**
     * Callback invoked when user wants to open an object
     */
    readonly openObjectCallback?: OpenObjectCallback;
    /**
     * Callback invoked when user wants to show object selection dialog
     */
    readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;
    /**
     * Callback invoked when any item from the references panels is selected
     */
    readonly selectReferenceCallback?: SelectReferenceCallback;
    /**
     * Callback invoked when user writes on object selector input
     */
    readonly selectorSourceCallback?: SelectorSourceCallback;
    /**
     * Currently selected object
     */
    selectedObject?: ObjectData;
    selectedObjectChanged(newSelectedObject: ObjectData): void;
    componentDidLoad(): void;
    componentWillLoad(): Promise<void>;
    render(): any;
}
export type LoadReferencesCallback = (id: string, to: boolean) => Promise<ReferenceData[]>;
export type ObjectData = {
    id: string;
    typeName: string;
    icon: string;
    name: string;
    description?: string;
};
export type OpenObjectCallback = (id: string) => Promise<void>;
export type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;
export type ReferenceData = ObjectData & {
    hasChildren: boolean;
    items?: ReferenceData[];
};
export type SelectReferenceCallback = (id: string) => Promise<void>;
export type SelectorCategoryData = {
    name: string;
    items: ObjectData[];
};
export type SelectorSourceCallback = (prefix: string) => Promise<SelectorCategoryData[]>;
export type objectDataMap = Map<string, ObjectData>;
