import { Http } from '../../util/http';
import type { HttpError } from '../../util/http';
import type { DatasourceApi, DigestConfig, GetReleasesConfig, RegistryStrategy, ReleaseResult } from './types';
export declare abstract class Datasource implements DatasourceApi {
    readonly id: string;
    protected constructor(id: string);
    caching: boolean | undefined;
    customRegistrySupport: boolean;
    defaultConfig: Record<string, unknown> | undefined;
    defaultRegistryUrls?: string[] | (() => string[]);
    defaultVersioning?: string | undefined;
    registryStrategy: RegistryStrategy | undefined;
    protected http: Http;
    abstract getReleases(getReleasesConfig: GetReleasesConfig): Promise<ReleaseResult | null>;
    getDigest?(config: DigestConfig, newValue?: string): Promise<string | null>;
    handleSpecificErrors(err: HttpError): void;
    protected handleGenericErrors(err: HttpError): never;
}
