import { MetadataComponent } from '../../resolve/types';
import { WriteInfo, WriterFormat } from '../types';
import { ConvertTransactionFinalizer } from './transactionFinalizer';
export type DecompositionStateValue = {
    /** mark it true if the merge has been found.  Absence of a value means "it wasn't found yet'" */
    foundMerge?: true;
    writeInfo?: WriteInfo;
    origin?: MetadataComponent;
};
export type DecompositionState = Map<string, DecompositionStateValue>;
/**
 * Creates write infos for any children that haven't been written yet. Children may
 * delay being written in order to find potential existing children to merge
 * with in the conversion pipeline.
 */
export declare class DecompositionFinalizer extends ConvertTransactionFinalizer<DecompositionState> {
    transactionState: DecompositionState;
    finalize(): Promise<WriterFormat[]>;
}
