import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
import { ComponentID } from '@teambit/component-id';
import { AspectEntry, SerializableMap } from './aspect-entry';
/**
 * list of aspects, each may have data and artifacts saved per component.
 */
export declare class AspectList {
    readonly entries: AspectEntry[];
    constructor(entries: AspectEntry[]);
    addEntry(aspectId: ComponentID, data?: SerializableMap): AspectEntry;
    upsertEntry(aspectId: ComponentID, data?: SerializableMap): AspectEntry;
    /**
     * transform an aspect list into a new one without the given aspect ids
     */
    withoutEntries(aspectIds: string[]): AspectList;
    /**
     * get all ids as strings from the aspect list.
     */
    get ids(): string[];
    /**
     * get an aspect from the list using a serialized ID.
     */
    get(id: string): AspectEntry | undefined;
    /**
     * find aspect by component ID.
     */
    find(id: ComponentID, ignoreVersion?: boolean): AspectEntry | undefined;
    /**
     * transform an aspect list into a new one.
     */
    map(predicate: (entry: AspectEntry) => AspectEntry): AspectList;
    /**
     * transform an aspect list into a new one.
     */
    pmap(predicate: (entry: AspectEntry) => Promise<AspectEntry>): Promise<AspectList>;
    toConfigObject(): {};
    serialize(): import("./component-interface").RawComponentMetadata[];
    filter(ids?: string[]): AspectList;
    toLegacy(): ExtensionDataList;
    stringIds(): string[];
    clone(): AspectList;
    static fromLegacyExtensions(legacyDataList: ExtensionDataList): AspectList;
}
