import { AbstractEmptyTask, IDataSource } from "@golemio/core/dist/integration-engine";
import { JISMetadataRepository } from "../../repositories/JISMetadataRepository";
import { ILogger } from "@golemio/core/dist/helpers";
export declare abstract class AbstractFetchJISResourceTask<TItem> extends AbstractEmptyTask {
    protected readonly metadataRepository: JISMetadataRepository;
    protected readonly logger: ILogger;
    protected abstract readonly queueRoutingKey: string;
    protected abstract readonly metadataGetter: () => Promise<string | undefined>;
    protected abstract readonly metadataSetter: (etag: string) => Promise<void>;
    protected abstract readonly getDataSource: (etag?: string) => IDataSource<TItem[]>;
    protected abstract readonly sendMessageToExchange: (data: TItem[]) => Promise<boolean>;
    constructor(metadataRepository: JISMetadataRepository, logger: ILogger, queuePrefix: string);
    protected execute(): Promise<void>;
    private getResponseEtag;
}
