/**
 * Copyright (c) 2020-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 { type Hashable } from '@finos/legend-shared';
import type { Connection, ConnectionPointer } from '../connection/Connection.js';
import type { PackageableRuntime } from './PackageableRuntime.js';
import type { Mapping } from '../mapping/Mapping.js';
import type { Store } from '../store/Store.js';
import type { PackageableElementReference } from '../PackageableElementReference.js';
export declare class IdentifiedConnection implements Hashable {
    readonly _UUID: string;
    id: string;
    connection: Connection;
    constructor(id: string, connection: Connection);
    get hashCode(): string;
}
export declare class StoreConnections implements Hashable {
    store: PackageableElementReference<Store>;
    storeConnections: IdentifiedConnection[];
    constructor(store: PackageableElementReference<Store>);
    get hashCode(): string;
}
export declare class ConnectionStores implements Hashable {
    connectionPointer: ConnectionPointer;
    storePointers: PackageableElementReference<Store>[];
    constructor(connectionPointer: ConnectionPointer);
    get hashCode(): string;
}
export declare abstract class Runtime implements Hashable {
    abstract get hashCode(): string;
}
export declare class EngineRuntime extends Runtime implements Hashable {
    mappings: PackageableElementReference<Mapping>[];
    connectionStores: ConnectionStores[];
    connections: StoreConnections[];
    get hashCode(): string;
}
export declare class SingleConnectionRuntime extends EngineRuntime {
    get hashCode(): string;
}
export declare class LakehouseRuntime extends EngineRuntime implements Hashable {
    environment?: string | undefined;
    warehouse?: string | undefined;
    connectionPointer?: ConnectionPointer | undefined;
    constructor(environment?: string, warehouse?: string, connectionPointer?: ConnectionPointer);
    get hashCode(): string;
}
export declare class RuntimePointer extends Runtime implements Hashable {
    packageableRuntime: PackageableElementReference<PackageableRuntime>;
    constructor(packageableRuntime: PackageableElementReference<PackageableRuntime>);
    get hashCode(): string;
}
//# sourceMappingURL=Runtime.d.ts.map