import { TabModel, TreeViewModel } from "@genexus/chameleon-controls-library";
import { CommitCallback, LoadLocalChangesCallback, LoadRemoteChangesCallback, UpdateCallback } from "../version-control/common/types";
export declare class GxIdeTeamDevPreview {
    #private;
    el: HTMLGxIdeTeamDevPreviewElement;
    loadingRemoteChanges: boolean;
    loadingLocalChanges: boolean;
    tabModel: TabModel;
    /**
     * Currently selected tab ID
     */
    selectedTabId: string;
    /**
     * Number of pending commit changes
     */
    pendingCommitChangesCount: number;
    /**
     * Number of pending remote changes
     */
    pendingRemoteChangesCount: number;
    /**
     * Represents the tree view model for remote changes
     */
    remoteChangesTreeViewModel: TreeViewModel;
    /**
     * Represents the tree view model for local changes
     */
    localChangesTreeViewModel: TreeViewModel;
    /**
     * Represents the selected nodes ids from remote changes tree
     */
    remoteChangesCheckedNodesIds: string[];
    /**
     * Represents the selected nodes ids from local changes tree
     */
    localChangesCheckedNodesIds: string[];
    /**
     * Commit message entered by the user
     */
    commitMessage: string;
    /**
     * Indicates if the commit process is ongoing
     */
    committingChanges: boolean;
    /**
     * Indicates if the update process is ongoing
     */
    updatingChanges: boolean;
    /**
     * Indicates if the server operations (commit/update) should be disabled
     */
    serverOperationsDisabled: boolean;
    /**
     * Data required to render the Team Dev Preview
     */
    readonly teamDevPreviewData: TeamDevPreviewData;
    onTeamDevPreviewDataChanged(): Promise<void>;
    /**
     * Invoked to return the list of remote changes
     */
    readonly loadRemoteChangesCallback: LoadRemoteChangesCallback;
    /**
     * Invoked to return the list of local changes
     */
    readonly loadLocalChangesCallback: LoadLocalChangesCallback;
    /**
     * Invoked when user starts the commit process
     */
    readonly commitCallback: CommitCallback;
    /**
     * Invoked when user starts the update process
     */
    readonly updateCallback: UpdateCallback;
    /**
     * Invoked to open the full Team Dev dialog
     */
    readonly openFullDialogCallback: () => Promise<void>;
    /**
     * Invoked to share the knowledge base to the server
     */
    readonly shareKBToServerCallback: () => Promise<void>;
    /**
     * Invoked to create a knowledge base from the server
     */
    readonly createKBFromServerCallback: () => Promise<void>;
    /**
     * Invoked to open the Team Development information
     */
    readonly openTeamDevInfoCallback: () => Promise<void>;
    /**
     * Invoked to reconnect to GeneXus Server
     */
    readonly reconnectCallback: () => Promise<void>;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): Promise<void>;
    /**
     * Used by the host to reload remote or local changes
     */
    reloadChanges(type: TeamDevPreviewMode): Promise<void>;
    /**
     * Used by the host to instruct the component to disable the commit/update button.
     */
    disableServerOperations(value: boolean): Promise<void>;
    private getEmptyStateType;
    render(): any;
}
export type TeamDevPreviewData = {
    versionName: string;
    isFrozenVersion: boolean;
    existsGXServerSession: boolean;
    isKBOpen: boolean;
    isLinkedVersion: boolean;
    isLinkedKB: boolean;
};
export type TeamDevPreviewMode = "local" | "remote";
