/**
 * 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 ModelSchema } from 'serializr';
import { type PlainObject } from '@finos/legend-shared';
import { V1_Variable } from '../../../model/valueSpecification/V1_Variable.js';
import { V1_Lambda } from '../../../model/valueSpecification/raw/V1_Lambda.js';
import type { V1_ValueSpecification } from '../../../model/valueSpecification/V1_ValueSpecification.js';
import type { V1_GraphFetchTree } from '../../../model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.js';
import { V1_PackageableElementPtr } from '../../../model/valueSpecification/raw/V1_PackageableElementPtr.js';
import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
export declare enum V1_GraphFetchTreeType {
    PROPERTY_GRAPH_FETCH_TREE = "propertyGraphFetchTree"
}
export declare enum V1_ClassInstanceType {
    ROOT_GRAPH_FETCH_TREE = "rootGraphFetchTree",
    SUBTYPE_GRAPH_FETCH_TREE = "subTypeGraphFetchTree",
    PATH = "path",
    AGGREGATE_VALUE = "aggregateValue",
    EXECUTION_CONTEXT_INSTANCE = "executionContextInstance",
    PAIR = "pair",
    PURE_LIST = "listInstance",
    RUNTIME_INSTANCE = "runtimeInstance",
    SERIALIZATION_CONFIG = "alloySerializationConfig",
    COL_SPEC = "colSpec",
    COL_SPEC_ARRAY = "colSpecArray",
    RELATION_STORE_ACCESSOR = ">",
    INGEST_ACCESSOR = "I",
    DATA_PRODUCT_ACCESSOR = "P",
    SQL_ACCESSOR = "SQL",
    TDS_AGGREGATE_VALUE = "tdsAggregateValue",
    TDS_COLUMN_INFORMATION = "tdsColumnInformation",
    TDS_SORT_INFORMATION = "tdsSortInformation",
    TDS_OLAP_RANK = "tdsOlapRank",
    TDS_OLAP_AGGREGATION = "tdsOlapAggregation"
}
export declare const V1_variableModelSchema: ModelSchema<V1_Variable>;
export declare const V1_lambdaModelSchema: (plugins: PureProtocolProcessorPlugin[]) => ModelSchema<V1_Lambda>;
export declare const V1_packageableElementPtrSchema: (isType?: boolean) => ModelSchema<V1_PackageableElementPtr>;
export declare function V1_serializeGraphFetchTree(protocol: V1_GraphFetchTree, plugins: PureProtocolProcessorPlugin[]): PlainObject<V1_GraphFetchTree>;
export declare function V1_deserializeGraphFetchTree(json: PlainObject<V1_GraphFetchTree>, plugins: PureProtocolProcessorPlugin[]): V1_GraphFetchTree;
export declare function V1_deserializeClassInstanceValue(json: PlainObject, type: string, plugins: PureProtocolProcessorPlugin[]): unknown;
export declare function V1_serializeClassInstanceValue(protocol: unknown, plugins: PureProtocolProcessorPlugin[]): PlainObject;
export declare function V1_deserializeValueSpecification(json: PlainObject<V1_ValueSpecification>, plugins: PureProtocolProcessorPlugin[]): V1_ValueSpecification;
export declare function V1_serializeValueSpecification(protocol: V1_ValueSpecification, plugins: PureProtocolProcessorPlugin[]): PlainObject<V1_ValueSpecification>;
//# sourceMappingURL=V1_ValueSpecificationSerializer.d.ts.map