import { CdmCorpusContext, CdmDocumentDefinition, CdmImport, CdmTraitCollection, CdmTraitDefinition, CdmTraitReference, CdmTraitReferenceBase } from '../../internal';
export declare const extensionDocName: string;
/**
 * Adds the list of documents with extensions schema definitions to the manifest.
 * @param ctx The context
 * @param importDocs The list of paths of documents with relevant schema definitions.
 * @param document The manifest that needs to import the docs.
 */
export declare function addImportDocsToManifest(ctx: CdmCorpusContext, importDocs: CdmImport[], document: CdmDocumentDefinition): void;
/**
 * For all the definitions (name, type) we have found for extensions, search in CDM Standard Schema for definition files.
 * If we find a definition in a CDM Standard Schema file, we add that file to importsList.
 * At the same time, the found definition is removed from extensionTraitDefList.
 * When this function returns, extensionTraitDefList only contains definitions that are not present in any CDM Standard Schema file,
 * and a list of CDM Standard Schema files with relevant definitions is returned.
 * @param ctx  The context
 * @param extensionTraitDefList The list of all definitions for all found extensions.
 * Function modifies this list by removing definitions found in CDM Standard Schema files.
 * @param localExtensionTraitDefList The list of all definitions for all found extensions in local scope.
 * @returns A list of CDM Standard Schema files to import.
 */
export declare function standardImportDetection(ctx: CdmCorpusContext, extensionTraitDefList: CdmTraitDefinition[], localExtensionTraitDefList: CdmTraitDefinition[]): Promise<CdmImport[]>;
export declare function processExtensionFromJson(ctx: CdmCorpusContext, sourceObject: object, baseProperties: string[], traitRefSet: CdmTraitCollection, extensionTraitDefList: CdmTraitDefinition[], localExtensionTraitDefList?: CdmTraitDefinition[]): void;
export declare function convertObjectTypeToString(objType: string): string;
export declare function processExtensionTraitToObject(extensionTraitRef: CdmTraitReference, destination: object): void;
/**
 * Checks whether the trait reference base is an extension (by checking whether its name has the extension prefix)
 * @param trait The trait to be checked
 * @returns Whether the trait is an extension.
 */
export declare function traitRefIsExtension(trait: CdmTraitReferenceBase): boolean;
