/** * Copyright (c) 2026-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { CubeDataProductEnvironmentType, type CubeDataProductModelSource, type CubeDataProductProject, type CubeHostProject, type CubeHostProjectRuntime, type CubeLakehouseEnvironment } from '@finos/legend-cube-builder'; import { type PackageableRuntime } from '@finos/legend-graph'; import type { PlainObject } from '@finos/legend-shared'; import type { EditorStore } from '../EditorStore.js'; /** The version a cube of the workspace's data products names: the workspace, never a release */ export declare const LEGEND_STUDIO_CUBE_WORKSPACE_VERSION = "workspace"; export declare const LEGEND_STUDIO_CUBE_WORKSPACE_MESSAGE: { NO_RUNTIME: string; NO_ENVIRONMENT: (runtime: string) => string; }; /** What a run of a class uses: the lakehouse environment, and the project runtime it was read from, when it was */ export interface LegendStudioCubeRuntime extends CubeHostProjectRuntime { readonly environment: string; readonly path?: string | undefined; } export declare class LegendStudioCubeWorkspace implements CubeHostProject, CubeLakehouseEnvironment, CubeDataProductModelSource { readonly editorStore: EditorStore; /** The viewer's lakehouse environment, from their entitlements, when Studio has the contract server */ private readonly viewerEnvironment; constructor(editorStore: EditorStore); /** The project's coordinates, which the URNs and models of Cube's sources carry */ get project(): { groupId: string; artifactId: string; }; /** * The lakehouse runtime a run uses: the project's first, as Studio's own * queries of an ingest definition or a data product pick * (`getCompatibleRuntimesFromAccessorOwner`, `LakehouseDataProductExecutionState`) */ get lakehouseRuntime(): PackageableRuntime | undefined; /** * What a run of a class uses: the viewer's environment, with the project * runtime's warehouse when there is one; without the contract server, the * project runtime's environment, which it then needs */ resolveRuntime(environmentType?: CubeDataProductEnvironmentType): Promise; /** The workspace's data products of a class, as the viewer's environment resolver reads a project */ private workspaceProjectOf; /** The project's lakehouse runtime, which a run needs without the contract server */ private resolveProjectRuntime; /** The environment a data product run's lakehouse runtime names, for the cube's class */ resolveEnvironment(project: CubeDataProductProject): Promise; /** * The elements a cube's typing and runs read, as protocol JSON: the * workspace's own and its dependencies', as Studio's own queries send * them, so a definition's materialized views and a data product's access * points find what they read */ getModelElements(): Promise; /** The model a cube of the workspace's data products reads them from: the workspace */ getProjectModel(): Promise; } //# sourceMappingURL=LegendStudioCubeWorkspace.d.ts.map