import { ForceIgnore } from '../../resolve/forceIgnore'; import type { MetadataComponent } from '../../resolve/types'; import { type MetadataType } from '../../registry/types'; import { SourceComponent } from '../../resolve/sourceComponent'; import type { ToSourceFormatInput, WriteInfo, XmlObj } from '../types'; import type { DecompositionState, DecompositionStateValue } from '../convertContext/decompositionFinalizer'; import { BaseMetadataTransformer } from './baseMetadataTransformer'; import type { ComposedMetadata, ComposedMetadataWithChildType, InfoContainer } from './types'; type StateSetter = (forComponent: MetadataComponent, props: Partial>) => void; export declare class DecomposedMetadataTransformer extends BaseMetadataTransformer { toMetadataFormat(component: SourceComponent): Promise; toSourceFormat({ component, mergeWith }: ToSourceFormatInput): Promise; } export declare const getWriteInfosFromMerge: (mergeWith: SourceComponent) => (stateSetter: StateSetter) => (parentXmlObject: XmlObj) => (parentComponent: SourceComponent) => WriteInfo[]; export declare const getWriteInfosWithoutMerge: (defaultDirectory: string | undefined) => (parentXmlObject: XmlObj) => (component: SourceComponent) => WriteInfo[]; /** * Helper for setting the decomposed transaction state * * @param state */ export declare const setDecomposedState: (state: DecompositionState) => (forComponent: MetadataComponent, props: Partial>) => void; /** use the given xmlElementName name if it exists, otherwise use see if one matches the directories */ export declare const tagToChildTypeId: ({ tagKey, type }: { tagKey: string; type: MetadataType; }) => string | undefined; export declare const hasChildTypeId: (cm: ComposedMetadata) => cm is Required; export declare const addChildType: (cm: Required) => ComposedMetadataWithChildType; export declare const forceIgnoreAllowsComponent: (forceIgnore: ForceIgnore) => (ic: InfoContainer) => boolean; export declare const getOutputFile: (component: SourceComponent, mergeWith?: SourceComponent) => string; export {};