import { JsonObject } from '@backstage/types';
import { AsyncConfigSourceGenerator, ConfigSource, ReadConfigDataOptions } from './types';
/**
 * Options for {@link MutableConfigSource.create}.
 *
 * @public
 */
export interface MutableConfigSourceOptions {
    data?: JsonObject;
    context?: string;
}
/**
 * A config source that can be updated with new data.
 *
 * @public
 */
export declare class MutableConfigSource implements ConfigSource {
    #private;
    /**
     * Creates a new mutable config source.
     *
     * @param options - Options for the config source.
     * @returns A new mutable config source.
     */
    static create(options?: MutableConfigSourceOptions): MutableConfigSource;
    private constructor();
    readConfigData(options?: ReadConfigDataOptions | undefined): AsyncConfigSourceGenerator;
    /**
     * Set the data of the config source.
     *
     * @param data - The new data to set
     */
    setData(data: JsonObject): void;
    /**
     * Close the config source, preventing any further updates.
     */
    close(): void;
    toString(): string;
}
