import { ComponentID, ComponentIdObj } from '@teambit/component-id';
import { LaneId } from '@teambit/lane-id';
import { Logger } from '@teambit/logger';
type Config = Record<string, any> | undefined;
type ComponentConfig = {
    id: ComponentID;
    config: Config;
    componentMapObject: Record<string, any>;
};
type ComponentConfigObj = {
    id: ComponentIdObj;
    config: Config;
    componentMapObject: Record<string, any>;
};
export declare class StagedConfig {
    readonly filePath: string;
    private componentsConfig;
    private logger;
    hasChanged: boolean;
    constructor(filePath: string, componentsConfig: ComponentConfig[], logger: Logger);
    static load(scopePath: string, logger: Logger, laneId?: LaneId): Promise<StagedConfig>;
    toObject(): ComponentConfigObj[];
    write(): Promise<void>;
    getConfigPerId(id: ComponentID): Config;
    getPerId(id: ComponentID): ComponentConfig | undefined;
    getAll(): ComponentConfig[];
    isEmpty(): boolean;
    deleteFile(): Promise<void>;
    addComponentConfig(id: ComponentID, config: Config, componentMapObject: Record<string, any>): void;
    removeComponentConfig(id: ComponentID): void;
}
export {};
