export const WRAPPERS = {
    EVENTS: ["title-changed", "bringToFront", "setBounds", "alwaysOnTop", "setOpacity"],
};
export const APPLICATION_STATE_CHANNEL = "Finsemble.Application.State";
// These next four channels are used in service => service manager communication. The SM receives these messages and then pushes out state updates to the rest of the system.
export const SERVICE_INITIALIZING_CHANNEL = "Finsemble.ServiceManager.serviceInitializing";
export const SERVICE_READY_CHANNEL = "Finsemble.ServiceManager.serviceReady";
export const SERVICE_CLOSING_CHANNEL = "Finsemble.ServiceManager.serviceClosing";
export const SERVICE_CLOSED_CHANNEL = "Finsemble.ServiceManager.serviceClosed";
// Naming to supports handshake betwwen each client and its corresponding service
// Returns the handshake channel for a given service name
export const SERVICE_QUERY_READY_CHANNEL = (name) => `Finsemble.ServiceManager.queryReady.${name}`;
// Maps a client name to its corresponding service name.  Okay to not include all clients here -- if not here then handshake won't be done
export const CLIENT_SERVER_MAPPING = (name) => {
    const MAPPING = {
        authenticationClient: "authenticationService",
        configClient: "configService",
        distributedStoreClient: "dataStoreService",
        hotkeyClient: "hotkeysService",
        linkerClient: "linkerService",
        logger: "loggerService",
        searchClient: "searchService",
        storageClient: "storageService",
        windowClient: "windowService",
        workspaceClient: "workspaceService",
    };
    // returns undefined if there is no mapping
    return MAPPING[name];
};
// This channel is where the aggregated state of all services is sent out on.
export const SERVICES_STATE_CHANNEL = "Finsemble.State.Services";
export var WINDOWSTATE;
(function (WINDOWSTATE) {
    WINDOWSTATE[WINDOWSTATE["NORMAL"] = 0] = "NORMAL";
    WINDOWSTATE[WINDOWSTATE["MINIMIZED_WAS_NORMAL"] = 1] = "MINIMIZED_WAS_NORMAL";
    WINDOWSTATE[WINDOWSTATE["MAXIMIZED"] = 2] = "MAXIMIZED";
    WINDOWSTATE[WINDOWSTATE["MINIMIZED_WAS_MAXIMIZED"] = 3] = "MINIMIZED_WAS_MAXIMIZED";
})(WINDOWSTATE || (WINDOWSTATE = {}));
// These channels are to start and stop services dynamically.
export const SERVICE_START_CHANNEL = "Finsemble.Service.Start";
export const SERVICE_STOP_CHANNEL = "Finsemble.Service.Stop";
// These channels are for interrupting events
export const EVENT_INTERRUPT_CHANNEL = "Finsemble.Event.Interrupt";
export const INTERRUPTIBLE_EVENTS = ["close-requested", "closed", "close-complete", "_container-close-handlers"];
export const WINDOW = {
    DELAYABLE_EVENTS: ["close-requested", "closed", "close-complete", "_container-close-handlers"],
    CANCELABLE_EVENTS: ["close-requested"],
};
export const WORKSPACE = {
    DELAYABLE_EVENTS: ["load-requested", "close-requested", "save-requested"],
    CANCELABLE_EVENTS: ["close-requested"],
    CLEAN_SHUTDOWN: "Finsemble.Workspace.cleanShutdown",
    WORKSPACE_UPDATED: "Finsemble.WorkspaceService.update",
    // Tells the docking service to use the groups delivered with this message
    RELOAD_GROUPS: "Finsemble.WorkspaceService.reloadGroups",
    STORAGE_TOPIC: "finsemble.workspace",
    CACHE_STORAGE_TOPIC: "finsemble.workspace.cache",
    ALL_WORKSPACES: "finsemble.allWorkspaces",
    ACTIVE_WORKSPACE: "activeWorkspace",
    // When we have the liberty of breaking API's, we should consolidate this topic.
    LAST_USED_WORKSPACE_TOPIC: "finsemble",
    LAST_USED_WORKSPACE_NAME: "finsemble.lastUsedWorkspace.name",
    LAST_USED_WORKSPACE: "finsemble.lastUsedWorkspace",
    INITIAL_WORKSPACE_PREFERENCE: "finsemble.initialWorkspace",
    PUBLISH_REASONS: {
        INIT: "workspace:initialization",
        LOAD_DATA_RETRIEVED: "workspace:load:dataRetrieved",
        LOAD_FINISHED: "workspace:load:finished",
        WINDOW_REMOVED: "window:remove",
        WINDOW_ADDED: "window:add",
        LOAD_STARTED: "workspace:load:start",
        WORKSPACE_REMOVED: "Workspace:remove",
        WORKSPACE_RENAMED: "rename",
        SWITCHTO_TERMINATED: "workspace:switchTo:terminated",
        NEW_WORKSPACE: "new workspace",
        SAVE_AS: "APPLICATION LIFECYCLE:WORKSPACE LIFECYCLE:SaveAs:Workspace:Save As",
    },
    API_CHANNELS: {
        NEW_WORKSPACE: "Finsemble.Workspace.NewWorkspace",
        SAVE: "Finsemble.Workspace.Save",
        RENAME: "Finsemble.Workspace.Rename",
        SAVE_AS: "Finsemble.Workspace.SaveAs",
        SWITCH_TO: "Finsemble.Workspace.SwitchTo",
        IMPORT: "Finsemble.Workspace.Import",
        EXPORT: "Finsemble.Workspace.Export",
        REMOVE: "Finsemble.Workspace.Remove",
        SAVE_GLOBAL_DATA: "Finsemble.Workspace.SaveGlobalData",
        SAVE_VIEW_DATA: "Finsemble.Workspace.SaveViewData",
        GET_GLOBAL_DATA: "Finsemble.Workspace.GetGlobalData",
        GET_VIEW_DATA: "Finsemble.Workspace.GetViewData",
        GET_WORKSPACES: "Finsemble.Workspace.GetWorkspaces",
        GET_WORKSPACE_NAMES: "Finsemble.Workspace.GetWorkspaceNames",
        SET_WORKSPACE_ORDER: "Finsemble.Workspace.SetWorkspaceOrder",
        GET_ACTIVE_WORKSPACE: "Finsemble.Workspace.GetActiveWorkspace",
        GET_ACTIVE_WORKSPACE_DIRTY: "Finsemble.Workspace.GetActiveWorkspaceDirty",
        GET_TEMPLATES: "Finsemble.Workspace.GetTemplates",
        IMPORT_TEMPLATE: "Finsemble.Workspace.ImportTemplate",
        EXPORT_TEMPLATE: "Finsemble.Workspace.ExportTemplate",
        REMOVE_TEMPLATE: "Finsemble.Workspace.RemoveTemplate",
        SET_WINDOW_STATE: "Finsemble.Workspace.SetWindowData",
        GET_WINDOW_STATE: "Finsemble.Workspace.GetWindowData",
        ADD_WINDOW: "WorkspaceService.addWindow",
        REMOVE_WINDOW: "WorkspaceService.removeWindow",
        GET_MANY_WINDOW_STATES: "Finsemble.Workspace.GetWindowDataMultiple",
        SETUP_INITIAL_WORKSPACE: "Finsemble.Workspace.SetupInitialWorkspace",
    },
    DEFAULT_WINDOW_PROPS: [
        "name",
        "componentType",
        "windowType",
        "alwaysOnTop",
        "autoShow",
        "minWidth",
        "minHeight",
        "maxWidth",
        "maxHeight",
        "resizable",
        "maximizable",
        "minimizable",
        "opacity",
        "windowState",
        // If these are not included, stacks don't position properly on workspace load (always stay at 0,0)
        "left",
        "top",
        "width",
        "height",
        "right",
        "bottom",
        // If these are not included, welcome component (defaultPosition center) do not position properly on workspace load (always position center)
        "defaultLeft",
        "defaultTop",
        "defaultWidth",
        "defaultHeight",
        "defaultRight",
        "defaultBottom",
        "monitorInfo",
        "icon",
        "cachedBounds",
        "showTaskbarIcon",
        "isEvergreen",
        "launchGroupComponentData",
        "allowAutoArrange",
    ],
    ADDITIONAL_WINDOW_PROPS: {
        WebWindow: [
            "url",
            "fullscreen",
            "frame",
            "backgroundColor",
            "transparent",
            "waitForPageLoad",
            "affinity",
            "appUUID",
        ],
        NativeWindow: ["path", "alias", "arguments", "argumentsAsQueryString", "isWPF"],
    },
};
export const WINDOW_SERVICE_REQUESTS = {
    REMOTE_FOCUS: "WindowService.remoteFocus",
    SET_ALWAYS_ON_TOP: "WindowService-Request-setAlwaysOnTop",
    IS_ALWAYS_ON_TOP: "WindowService-Request-isAlwaysOnTop",
};
export const COMPONENT_STATE_STORAGE_TOPIC = "finsemble.componentStateStorage";
export const HEARTBEAT_TIMEOUT_CHANNEL = "Finsemble.WindowService.HeartbeatTimeout";
export const LAUNCHER_SERVICE = {
    WINDOW_CLOSED: "LauncherService.WindowClosed",
};
export const MOVE_REASON = {
    AERO_KEY: "aero_key",
    SYSTEM_RESTORED: "system_restored",
};
//# sourceMappingURL=constants.js.map