import { EntityData, GxOption, ObjectType } from "../../common/types";
import { FilterAfterValue } from "../../common/constants";
export declare class GxIdeObjectSelector {
    #private;
    el: HTMLGxIdeObjectSelectorElement;
    /**
     * For show or hide the filters relative to modifiers
     */
    filterModified: boolean;
    /**
     * True if loadCallback has been called and has not been resolved yet.
     */
    loading: boolean;
    /**
     * The "modified after" value
     */
    modifiedAfterValue: FilterAfterValue;
    /**
     * The objects rendered in the table
     */
    objects: ObjectData[];
    /**
     * The selected objects in the table of objects
     */
    selectedObjectsIdsArray: string[];
    /**
     * Callback invoked when the user wishes to cancel the selection of objects.
     */
    readonly cancelCallback: CancelCallback;
    /**
     * The categories render in the filter category selector
     */
    readonly categories: GxOption[];
    /**
     * The default id value for the category filter
     */
    readonly defaultCategory: string;
    /**
     * The default value for the module/folder filter
     */
    readonly defaultModule: EntityData;
    /**
     * The default value for the type filter
     */
    readonly defaultType: string;
    /**
     * If true, it will display a loader when needed.
     */
    readonly loader = false;
    /**
     * Callback invoked when the component needs to reload the list of attributes.
     */
    readonly loadCallback: LoadCallback;
    /**
     * True if multiple object selection is allowed. Default is 'True'
     */
    readonly multiSelection: boolean;
    /**
     * Callback invoked when the user presses the 'New' button.
     */
    readonly newObjectCallback: NewObjectCallback;
    /**
     * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.
     */
    readonly openSelectionCallback: OpenSelectionCallback;
    /**
     * Current value of the input pattern. It is also used to set the default value when initializing the component
     */
    readonly patternValue: string;
    /**
     * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.
     */
    readonly selectModuleCallback: SelectModuleCallback;
    /**
     * The types render in the filter type selector
     */
    readonly types: ObjectType[];
    connectedCallback(): Promise<void>;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    componentDidRender(): void;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    /**
     * Validate necessary data input
     */
    validate(): Promise<boolean>;
    render(): void;
}
export type NewObjectCallback = () => Promise<void>;
export type CancelCallback = () => Promise<void>;
export type SelectModuleCallback = () => Promise<EntityData | undefined>;
export type OpenSelectionCallback = (ids: string[]) => Promise<void>;
export type LoadCallback = (filters: ObjectFiltersData) => Promise<ObjectData[]>;
export type ObjectFiltersData = {
    pattern?: string;
    type: string;
    category?: string;
    module?: string;
    modifiedAfter?: string;
    modifiedBy?: string;
    modifiedDate?: Date;
};
export type ObjectData = {
    id: string;
    icon: string;
    name: string;
    type: string;
    description: string;
    module: string;
    modifiedDate?: Date;
    importDate?: Date;
};
