import { DataToVersion, ICheckedoutVersionedData, IVersionedData, IVersionedDataIdentifier, IVersionInformation, IVersionReference, LatestDataResponse, LatestReferenceResponse } from "../models";
export declare class VersionedDataService<T extends DataToVersion> {
    private serviceContainerContext;
    private extensionHttpClients;
    constructor();
    create(dataToVersion: T): Promise<ICheckedoutVersionedData<T>>;
    checkIn(versionToCheckIn: ICheckedoutVersionedData<T>): Promise<IVersionedData<T>>;
    publish(versionToPublish: IVersionedData<T>): Promise<IVersionedData<T>>;
    checkOut(dataIdentifier: IVersionedDataIdentifier, takeOver?: boolean): Promise<ICheckedoutVersionedData<T>>;
    getByVersionRef(versionReference: IVersionReference): Promise<IVersionedData<T>>;
    getVersionInfo(dataIdentifier: IVersionedDataIdentifier): Promise<IVersionInformation[]>;
    getLatest(dataIdentifier: IVersionedDataIdentifier): Promise<LatestDataResponse<T>>;
    getLatestRef(dataIdentifier: IVersionedDataIdentifier): Promise<LatestReferenceResponse>;
    private getHttpClientForServiceId;
    private getBaseUrl;
}
