import { SourcePath } from '../../common/types';
import { SourceComponent } from '../sourceComponent';
import { MixedContentSourceAdapter } from './mixedContentSourceAdapter';
/**
 * Handles decomposed types. A flavor of mixed content where a component can
 * have additional -meta.xml files that represent child components of the main
 * component.
 *
 * __Example Types__:
 *
 * CustomObject, CustomObjectTranslation
 *
 * __Example Structures__:
 *
 *```text
 * foos/
 * ├── MyFoo__c/
 * |   ├── MyFoo__c.foo-meta.xml
 * |   ├── bars/
 * |      ├── a.bar-meta.xml
 * |      ├── b.bar-meta.xml
 * |      ├── c.bar-meta.xml
 *
 * foos/
 * ├── MyFoo__c/
 * |   ├── a.bar-meta.xml
 * |   ├── MyFoo__c.foo-meta.xml
 * |   ├── b.bar-meta.xml
 * |   ├── c.bar-meta.xml
 *```
 */
export declare class DecomposedSourceAdapter extends MixedContentSourceAdapter {
    protected ownFolder: boolean;
    protected metadataWithContent: boolean;
    getComponent(path: SourcePath, isResolvingSource?: boolean): SourceComponent | undefined;
    /**
     * If the trigger turns out to be part of an addressable child component, `populate` will build
     * the child component, set its parent property to the one created by the
     * `BaseSourceAdapter`, and return the child component instead.
     */
    protected populate(trigger: SourcePath, component?: SourceComponent, isResolvingSource?: boolean): SourceComponent | undefined;
}
