import { HtmlRR0Context } from "../../RR0Context.js";
import { Level2Date as EdtfDate } from "@rr0/time";
import { TimeTextBuilder } from "../text/TimeTextBuilder.js";
import { RR0CaseMapping } from "./rr0/index.js";
import { RR0SourceType, Source } from "@rr0/data";
import { PlaceRenderer } from "../../place/PlaceRenderer.js";
export declare abstract class DatasourceTestCase {
readonly mapping: RR0CaseMapping;
readonly sourceCases: S[];
protected readonly intlOptions: Intl.DateTimeFormatOptions;
timeTextBuilder: TimeTextBuilder;
placeRenderer: PlaceRenderer;
protected constructor(mapping: RR0CaseMapping, sourceCases: S[], intlOptions?: Intl.DateTimeFormatOptions);
checkCaseHTML(context: HtmlRR0Context, nativeCase: S, item: HTMLLIElement, dataDate: Date): void;
testRender(context: HtmlRR0Context): Promise;
testFetch(context: HtmlRR0Context): Promise;
protected abstract sortComparator(c1: S, c2: S): number;
protected abstract getTime(c: S): EdtfDate;
protected expectedSourceStr(context: HtmlRR0Context, expectedSources: Source[], nativeCase: S): string;
}