import { ComboBoxModel } from "@genexus/chameleon-controls-library";
import { ContextMenuInfo, ItemsCheckedResult, ItemsCheckedState, ObjectType } from "../../../common/types";
import { Action, ActionForFilter, LoadRemoteChangesCallback, ModifiedObject, UpdateCallback, UpdateData, UpdateStatusInternal } from "../version-control/common/types";
export declare class GxIdeTeamDevUpdate {
    #private;
    el: HTMLGxIdeTeamDevBringChangesElement;
    /**
     * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.
     */
    atLeastOneObjectIsChecked: boolean;
    /**
     * True while commitObjects hasn't been loaded or is empty. Used to display a loader.
     */
    loading: boolean;
    /**
     * The current search filter value
     */
    menuContextAction: Action;
    /**
     * The current search filter value
     */
    searchValue: string;
    /**
     * The current state filter value
     */
    selectedAction: ActionForFilter;
    /**
     * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose their state.
     */
    markedObjectsSet: Set<string>;
    markedObjectsSetChanged(newMarkedObjectsSet: Set<string>): void;
    /**
     * A set that holds the id's of the objects that have been updated already.
     */
    alreadyUpdatedObjectsIdsSet: Set<string>;
    alreadyUpdatedObjectsIdsSetChanged(newUpdatedObjectsIdsSet: Set<string>): void;
    /**
     * A set that holds the id's of all the pending objects. Used to quickly determine if the selected rows belong
     * to "pending" or not. This information is required for the ContextMenuCallback callback. This set has to be updated
     * on every loadCallback.
     */
    pendingIdsSet: Set<string>;
    /**
     * A set that holds the id's of all the ignored objects. Used to quickly determine if the selected rows belong
     * to "ignored" or not. This information is required for the ContextMenuCallback callback. This set has to be updated
     * on every loadCallback.
     */
    ignoredIdsSet: Set<string>;
    /**
     * A map that holds object messages, after trying to update ('info' | ‘success’ | 'warning' | 'error')
     */
    objectsMessagesDataMap: Map<string, MessageData[]>;
    /**
     * Set to true when objects are being mered. This helps disabling controls until all objects are done.
     */
    updating: boolean;
    /**
     * A boolean that indicates if all the pending objects, have been updated
     * already.
     */
    allPendingAreUpdated: boolean;
    /**
     * The "KB Properties" checkbox value
     */
    kbPropertiesChecked: boolean;
    /**
     * The combobox model for the types filter.
     */
    typesComboBoxModel: ComboBoxModel;
    /**
     * The selected type
     */
    selectedType: string;
    /**
     * Indicates if the update button should be disabled
     */
    isUpdateDisabled: boolean;
    /**
     * A map that holds the current update objects states ("inserted" | "modified" | "modified-with-conflicts" | "deleted" | "updating" | "update")
     */
    objectsStatusMap: Map<string, UpdateStatusInternal>;
    objectsStatusMapChanged(newObjectsStatusMap: Map<string, UpdateStatusInternal>): void;
    /**
     * Callback invoked when user activates the context menu on any of the grids.
     */
    readonly contextMenuCallback: ContextMenuCallback;
    /**
     * All objects ("pending for update" and "ignored objects") before "state" filter
     */
    pendingAndIgnored: UpdateData;
    pendingAndIgnoredChanged(): void;
    /**
     * Pending objects after "action" filter
     */
    pendingObjectsAfterActionFilter: ModifiedObject[];
    /**
     * Ignored objects after "action" filter
     */
    ignoredObjectsAfterActionFilter: ModifiedObject[];
    /**
     * Callback invoked to return the list of data types loaded from file or url.
     */
    readonly loadCallback: LoadRemoteChangesCallback;
    /**
     * Callback invoked to return information of a Font type of data.
     */
    readonly pendingItemsCheckedCallback: PendingItemsCheckedCallback;
    /**
     * Possible values for type filter
     */
    readonly types: ObjectType[];
    /**
     * If true, the "Action" column will display a button instead of a pill, only when the action is
     */
    readonly updatePillAsButton: boolean;
    /**
     * Callback invoked when the update process is to be started (’Update’ button).
     */
    readonly updateCallback: UpdateCallback;
    /**
     * Callback invoked when user clicks in server url of Update From group.
     */
    readonly openServerCallback: () => Promise<void>;
    /**
     * Information to show in Update From group.
     */
    readonly updateFrom: UpdateFromData;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): Promise<void>;
    /**
     * Used by the host to instruct the component to force a data reload in the grids.
     */
    reload(): Promise<void>;
    /**
     * Used by the host to instruct the component to disable the update button.
     */
    disableUpdate(value: boolean): Promise<void>;
    render(): any;
}
export type ContextMenuCallback = (source: UpdateSourceType, contextMenuInfo: ContextMenuInfo) => Promise<void>;
export type PendingItemsCheckedCallback = (pendingItemsCheckedState: ItemsCheckedState) => Promise<ItemsCheckedResult | undefined>;
export type UpdateSourceType = "pending" | "ignored";
export interface UpdateFromData {
    serverUrl: string;
    kbName: string;
    versionName: string;
    lastFullUpdate: Date;
}
export interface MessageData {
    type: "info" | "success" | "warning" | "error";
    text: string;
}
