import { HumanDuration } from '@backstage/types';
import { AsyncConfigSourceGenerator, ConfigSource, SubstitutionFunc, ReadConfigDataOptions, Parser } from './types';
/**
 * Options for {@link RemoteConfigSource.create}.
 *
 * @public
 */
export interface RemoteConfigSourceOptions {
    /**
     * The URL to load the config from.
     */
    url: string;
    /**
     * How often to reload the config from the remote URL, defaults to 1 minute.
     *
     * Set to Infinity to disable reloading, for example `{ days: Infinity }`.
     */
    reloadInterval?: HumanDuration;
    /**
     * A substitution function to use instead of the default environment substitution.
     */
    substitutionFunc?: SubstitutionFunc;
    /**
     * A content parsing function to transform string content to configuration values.
     */
    parser?: Parser;
}
/**
 * A config source that loads configuration from a remote URL.
 *
 * @public
 */
export declare class RemoteConfigSource implements ConfigSource {
    #private;
    /**
     * Creates a new {@link RemoteConfigSource}.
     *
     * @param options - Options for the source.
     * @returns A new remote config source.
     */
    static create(options: RemoteConfigSourceOptions): ConfigSource;
    private constructor();
    readConfigData(options?: ReadConfigDataOptions | undefined): AsyncConfigSourceGenerator;
    toString(): string;
}
