import { FinsembleWindowData } from "../window/types";
export declare type GroupData = {
    windowNames: string[];
    isMovable: boolean;
    isAlwaysOnTop: boolean;
    topRightWindow: string;
    isARectangle: boolean;
    ungroupedAlwaysOnTopState: Record<string, Boolean>;
};
/**
 * This interface represents base data that all
 * workspace-type objects have in common and extend.
 */
export declare type WorkspaceBase = {
    /**
     * The version of the API schema. Used to maintain
     * backward compatibility.
     */
    version: "1.0.0";
    /** A string uniquely identifying the workspace from other workspaces.
     *
     * NOTE: Does not differentiate between instances of the same workspace.
     * For that, see the `guid` property of the `ActiveWorkspace` type.
     */
    name: string;
    /**
     * Distinguishes normal workspaces from templates. Templates are workspaces
     * that are distributed by Finsemble administrators to users and are not
     * modified, much like a template document in Microsoft Office.
     *
     * The different behavior between workspaces and templates isn't yet implemented,
     * but will be soon.
     */
    type: "workspace" | "template";
    groups: Record<string, GroupData>;
};
/** The complete data representation of a Workspace.
 */
export declare type Workspace = WorkspaceBase & {
    /**
     * An array of unique string identifiers for the windows that belong
     * to this workspace.
     */
    windows: string[];
};
export declare type WorkspaceImport = WorkspaceBase & {
    windows: string[];
    windowData?: FinsembleWindowData[];
    componentStates?: Record<string, any>;
    /**
     * If set to true then ths workspace will be the default. If no workspaces have this flag then the first workspace alphabetically will be the default.
     */
    default?: boolean;
};
/**
 * The data representation of the active workspace.
 * KW: Currently identical to the Workspace type after removal of the guid property
 */
export declare type ActiveWorkspace = Workspace;
export declare type WorkspaceEventName = "load-requested" | "load-complete" | "load-failed" | "load-interrupted" | "close-requested" | "close-complete" | "close-canceled" | "close-failed" | "save-requested" | "save-complete" | "save-failed";
//# sourceMappingURL=types.d.ts.map