/**
 * 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 AuthenticationStrategy, ApiTokenAuthenticationStrategy, DefaultH2AuthenticationStrategy, DelegatedKerberosAuthenticationStrategy, GCPApplicationDefaultCredentialsAuthenticationStrategy, OAuthAuthenticationStrategy, SnowflakePublicAuthenticationStrategy, UsernamePasswordAuthenticationStrategy, GCPWorkloadIdentityFederationAuthenticationStrategy, MiddleTierUsernamePasswordAuthenticationStrategy, TrinoDelegatedKerberosAuthenticationStrategy } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/AuthenticationStrategy.js';
import { type DatasourceSpecification, type TrinoSslSpecification, BigQueryDatasourceSpecification, DatabricksDatasourceSpecification, EmbeddedH2DatasourceSpecification, LocalH2DatasourceSpecification, RedshiftDatasourceSpecification, SnowflakeDatasourceSpecification, StaticDatasourceSpecification, SpannerDatasourceSpecification, TrinoDatasourceSpecification } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js';
import { type Mapper, SchemaNameMapper, TableNameMapper } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/postprocessor/Mapper.js';
import { MapperPostProcessor } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/postprocessor/MapperPostProcessor.js';
import type { PostProcessor } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/postprocessor/PostProcessor.js';
import type { RelationalDatabaseConnection } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/RelationalDatabaseConnection.js';
import type { EmbeddedRelationalInstanceSetImplementation } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/EmbeddedRelationalInstanceSetImplementation.js';
import type { FilterMapping } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/FilterMapping.js';
import type { GroupByMapping } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/GroupByMapping.js';
import type { InlineEmbeddedRelationalInstanceSetImplementation } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/InlineEmbeddedRelationalInstanceSetImplementation.js';
import type { OtherwiseEmbeddedRelationalInstanceSetImplementation } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/OtherwiseEmbeddedRelationalInstanceSetImplementation.js';
import type { RelationalInstanceSetImplementation } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/RelationalInstanceSetImplementation.js';
import type { RelationalPropertyMapping } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js';
import type { RootRelationalInstanceSetImplementation } from '../../../graph/metamodel/pure/packageableElements/store/relational/mapping/RootRelationalInstanceSetImplementation.js';
import { Column } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Column.js';
import type { ColumnMapping } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/ColumnMapping.js';
import type { ColumnReference } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/ColumnReference.js';
import type { Database } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Database.js';
import type { Filter } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Filter.js';
import type { FilterReference } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/FilterReference.js';
import type { Join } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Join.js';
import type { JoinReference } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/JoinReference.js';
import { TemporalMilestoning } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/milestoning/Milestoning.js';
import { type RelationalDataType } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/RelationalDataType.js';
import { RelationalOperationElement, type JoinTreeNode, DynaFunction, TableAlias, TableAliasColumn, Literal, LiteralList, RelationalOperationElementWithJoin } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/RelationalOperationElement.js';
import type { Schema } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Schema.js';
import type { Table } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/Table.js';
import { TableReference } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/TableReference.js';
import type { View } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/View.js';
import { ViewReference } from '../../../graph/metamodel/pure/packageableElements/store/relational/model/ViewReference.js';
import { type ObserverContext } from './CoreObserverHelper.js';
import type { DEPRECATED__RelationalInputData } from '../../../graph/metamodel/pure/packageableElements/mapping/DEPRECATED__MappingTest.js';
import { type RelationalQueryGenerationConfig, GenerationFeaturesConfig } from '../../../graph/metamodel/pure/packageableElements/store/relational/connection/RelationalQueryGenerationConfig.js';
export declare const observe_RelationalDataType: (metamodel: RelationalDataType) => RelationalDataType;
export declare const observe_Column: (metamodel: Column) => Column;
export declare const observe_TableReference: (metamodel: TableReference) => TableReference;
export declare const observe_ViewReference: (metamodel: ViewReference) => ViewReference;
export declare const observe_TableAlias: (metamodel: TableAlias) => TableAlias;
export declare const observe_DynaFunction: (metamodel: DynaFunction) => DynaFunction;
export declare const observe_ColumnReference: (metamodel: ColumnReference) => ColumnReference;
export declare const observe_TableAliasColumn: (metamodel: TableAliasColumn) => TableAliasColumn;
export declare const observe_JoinReference: (metamodel: JoinReference) => JoinReference;
export declare const observe_JoinTreeNode: (metamodel: JoinTreeNode) => JoinTreeNode;
export declare const observe_RelationalOperationElementWithJoin: (metamodel: RelationalOperationElementWithJoin) => RelationalOperationElementWithJoin;
export declare const observe_Literal: (metamodel: Literal) => Literal;
export declare const observe_LiteralList: (metamodel: LiteralList) => LiteralList;
export declare function observe_RelationalOperationElement(metamodel: RelationalOperationElement): RelationalOperationElement;
export declare const observe_TemporalMilstoning: (metamodel: TemporalMilestoning) => TemporalMilestoning;
export declare const observe_ColumnMapping: (metamodel: ColumnMapping) => ColumnMapping;
export declare const observe_FilterReference: (metamodel: FilterReference) => FilterReference;
export declare const observe_FilterMapping: (metamodel: FilterMapping) => FilterMapping;
export declare const observe_GroupByMapping: (metamodel: GroupByMapping) => GroupByMapping;
export declare const observe_Table: (metamodel: Table, context: ObserverContext) => Table;
export declare const observe_View: (metamodel: View, context: ObserverContext) => View;
export declare const observe_Schema: (metamodel: Schema, context: ObserverContext) => Schema;
export declare const observe_Filter: (metamodel: Filter) => Filter;
export declare const observe_Join: (metamodel: Join) => Join;
export declare const observe_Database: (metamodel: Database, context: ObserverContext) => Database;
export declare const observe_RelationalPropertyMapping: (metamodel: RelationalPropertyMapping, context: ObserverContext) => RelationalPropertyMapping;
export declare const observe_Abstract_EmbeddedRelationalInstanceSetImplementation: (metamodel: EmbeddedRelationalInstanceSetImplementation, context: ObserverContext) => EmbeddedRelationalInstanceSetImplementation;
export declare const observe_EmbeddedRelationalInstanceSetImplementation: (metamodel: EmbeddedRelationalInstanceSetImplementation, context: ObserverContext) => EmbeddedRelationalInstanceSetImplementation;
export declare const observe_InlineEmbeddedRelationalInstanceSetImplementation: (metamodel: InlineEmbeddedRelationalInstanceSetImplementation, context: ObserverContext) => InlineEmbeddedRelationalInstanceSetImplementation;
export declare const observe_OtherwiseEmbeddedRelationalInstanceSetImplementation: (metamodel: OtherwiseEmbeddedRelationalInstanceSetImplementation, context: ObserverContext) => OtherwiseEmbeddedRelationalInstanceSetImplementation;
export declare const observe_RelationalInstanceSetImplementation: (metamodel: RelationalInstanceSetImplementation, context: ObserverContext) => RelationalInstanceSetImplementation;
export declare const observe_RootRelationalInstanceSetImplementation: (metamodel: RootRelationalInstanceSetImplementation, context: ObserverContext) => RootRelationalInstanceSetImplementation;
export declare const observe_RelationalInputData: (metamodel: DEPRECATED__RelationalInputData) => DEPRECATED__RelationalInputData;
export declare const observe_StaticDatasourceSpecification: (metamodel: StaticDatasourceSpecification) => StaticDatasourceSpecification;
export declare const observe_DatabricksDatasourceSpecification: (metamodel: DatabricksDatasourceSpecification) => DatabricksDatasourceSpecification;
export declare const observe_EmbeddedH2DatasourceSpecification: (metamodel: EmbeddedH2DatasourceSpecification) => EmbeddedH2DatasourceSpecification;
export declare const observe_LocalH2DatasourceSpecification: (metamodel: LocalH2DatasourceSpecification) => LocalH2DatasourceSpecification;
export declare const observe_SnowflakeDatasourceSpecification: (metamodel: SnowflakeDatasourceSpecification) => SnowflakeDatasourceSpecification;
export declare const observe_RedshiftDatasourceSpecification: (metamodel: RedshiftDatasourceSpecification) => RedshiftDatasourceSpecification;
export declare const observe_BigQueryDatasourceSpecification: (metamodel: BigQueryDatasourceSpecification) => BigQueryDatasourceSpecification;
export declare const observe_SpannerDatasourceSpecification: (metamodel: SpannerDatasourceSpecification) => SpannerDatasourceSpecification;
export declare const observe_TrinoSslSpecification: (metamodel: TrinoSslSpecification) => TrinoSslSpecification;
export declare const observe_TrinoDatasourceSpecification: (metamodel: TrinoDatasourceSpecification) => TrinoDatasourceSpecification;
export declare const observe_DatasourceSpecification: (metamodel: DatasourceSpecification, context: ObserverContext) => DatasourceSpecification;
export declare const observe_DelegatedKerberosAuthenticationStrategy: (metamodel: DelegatedKerberosAuthenticationStrategy) => DelegatedKerberosAuthenticationStrategy;
export declare const observe_DefaultH2AuthenticationStrategy: (metamodel: DefaultH2AuthenticationStrategy) => DefaultH2AuthenticationStrategy;
export declare const observe_ApiTokenAuthenticationStrategy: (metamodel: ApiTokenAuthenticationStrategy) => ApiTokenAuthenticationStrategy;
export declare const observe_OAuthAuthenticationStrategy: (metamodel: OAuthAuthenticationStrategy) => OAuthAuthenticationStrategy;
export declare const observe_SnowflakePublicAuthenticationStrategy: (metamodel: SnowflakePublicAuthenticationStrategy) => SnowflakePublicAuthenticationStrategy;
export declare const observe_GCPApplicationDefaultCredentialsAuthenticationStrategy: (metamodel: GCPApplicationDefaultCredentialsAuthenticationStrategy) => GCPApplicationDefaultCredentialsAuthenticationStrategy;
export declare const observe_UsernamePasswordAuthenticationStrategy: (metamodel: UsernamePasswordAuthenticationStrategy) => UsernamePasswordAuthenticationStrategy;
export declare const observe_GCPWorkloadIdentityFederationAuthenticationStrategy: (metamodel: GCPWorkloadIdentityFederationAuthenticationStrategy) => GCPWorkloadIdentityFederationAuthenticationStrategy;
export declare const observe_MiddleTierUsernamePasswordAuthenticationStrategy: (metamodel: MiddleTierUsernamePasswordAuthenticationStrategy) => MiddleTierUsernamePasswordAuthenticationStrategy;
export declare const observe_TrinoDelegatedKerberosAuthenticationStrategy: (metamodel: TrinoDelegatedKerberosAuthenticationStrategy) => TrinoDelegatedKerberosAuthenticationStrategy;
export declare const observe_AuthenticationStrategy: (metamodel: AuthenticationStrategy, context: ObserverContext) => AuthenticationStrategy;
export declare const observe_SchemaNameMapper: (metamodel: SchemaNameMapper) => SchemaNameMapper;
export declare const observe_TableNameMapper: (metamodel: TableNameMapper) => TableNameMapper;
export declare const observe_Mapper: (metamodel: Mapper) => Mapper;
export declare const observe_Abstract_PostProcessor: (metamodel: PostProcessor) => void;
export declare const observe_MapperPostProcessor: (metamodel: MapperPostProcessor) => MapperPostProcessor;
export declare const observe_PostProcessor: (metamodel: PostProcessor, context: ObserverContext) => PostProcessor;
export declare const observe_Abstract_RelationalQueryGenerationConfig: (metamodel: RelationalQueryGenerationConfig) => void;
export declare const observe_GenerationFeaturesConfig: (metamodel: GenerationFeaturesConfig) => GenerationFeaturesConfig;
export declare const observe_RelationalQueryGenerationConfig: (metamodel: RelationalQueryGenerationConfig) => RelationalQueryGenerationConfig;
export declare const observe_RelationalDatabaseConnection: (metamodel: RelationalDatabaseConnection, context: ObserverContext) => RelationalDatabaseConnection;
//# sourceMappingURL=STO_Relational_ObserverHelper.d.ts.map