/**
 * 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 PlainObject } from '@finos/legend-shared';
import { V1_PureModelContextData } from '../../model/context/V1_PureModelContextData.js';
import { V1_LegendSDLC } from '../../model/context/V1_SDLC.js';
import type { V1_PureModelContext } from '../../model/context/V1_PureModelContext.js';
import type { PureProtocolProcessorPlugin } from '../../../PureProtocolProcessorPlugin.js';
import type { Entity } from '@finos/legend-storage';
import type { ClassifierPathMappingMap, SubtypeInfo } from '../../../../../action/protocol/ProtocolInfo.js';
export declare enum V1_PureModelContextType {
    DATA = "data",
    POINTER = "pointer",
    COMPOSITE = "composite",
    TEXT = "text"
}
export declare const V1_entitiesToPureModelContextData: (entities: Entity[] | undefined, graph: V1_PureModelContextData, plugins: PureProtocolProcessorPlugin[], subtypeInfo?: SubtypeInfo | undefined, classifierPathMappingMap?: ClassifierPathMappingMap | undefined, 
/**
 * FIXME: to be deleted when most users have migrated to using full function signature as function name
 * Currently, SDLC store many functions in legacy form (entity path does
 * not contain full function signature). However, since they store function
 * entity in text, when they parse the content to return JSON for entity
 * content, the content is then updated to have proper `name` for function
 * entities, this means that there's now a mismatch in the path constructed
 * from entity content and the entity path, which is a contract that SDLC
 * should maintain but currently not because of this change
 * See https://github.com/finos/legend-sdlc/pull/515
 *
 * For that reason, during this migration, we want to respect entity path
 * instead of the path constructed from entity content to properly
 * reflect the renaming of function in local changes.
 */
TEMPORARY__entityPathIndex?: Map<string, string>) => Promise<void>;
export declare const V1_legendSDLCSerializationModelSchema: import("serializr").ModelSchema<V1_LegendSDLC>;
export declare const V1_setupPureModelContextDataSerialization: (plugins: PureProtocolProcessorPlugin[], subtypeInfo?: SubtypeInfo | undefined, classifierPathMappingMap?: ClassifierPathMappingMap | undefined) => void;
export declare const V1_deserializePureModelContextData: (json: PlainObject<V1_PureModelContextData>) => V1_PureModelContextData;
export declare const V1_serializePureModelContextData: (protocol: V1_PureModelContextData) => PlainObject<V1_PureModelContextData>;
export declare const V1_serializePureModelContext: (pureModelContext: V1_PureModelContext) => PlainObject<V1_PureModelContext>;
export declare const V1_deserializePureModelContext: (json: PlainObject<V1_PureModelContext>) => V1_PureModelContext;
export declare const V1_pureModelContextDataPropSchema: import("serializr").PropSchema;
export declare const V1_pureModelContextPropSchema: import("serializr").PropSchema;
//# sourceMappingURL=V1_PureProtocolSerialization.d.ts.map