import { IDataSourceUpsertRequest, IDataSourceTestConnectionRequest, IDataSourceConnectionInfo, IDataSourcePatchRequest } from "@gooddata/sdk-backend-tiger";
import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
import { ITigerSpecificFunctions } from "../lib/tigerSpecificFunctions";
export declare type RequestDataSourceData = IDataSourceUpsertRequest | IDataSourceTestConnectionRequest | IDataSourcePatchRequest;
interface ISaveDataSourceState {
    isTestedConnectionSuccess: boolean;
    isSavedSuccess: boolean;
    isLoading: boolean;
    buttonText: string;
    errorApiMessage?: string;
    dataSourceInfo?: IDataSourceConnectionInfo;
}
interface ISaveDataSourceHook {
    saveDataSourceState: ISaveDataSourceState;
    createNewDataSource: (step: number, totalStep: number, request: RequestDataSourceData) => Promise<ISaveDataSourceState>;
    editDataSource: (dataSourceId: string, testConnectionData: IDataSourceTestConnectionRequest, updatedDataSourceData: IDataSourcePatchRequest) => Promise<ISaveDataSourceState>;
    backToConnectionInfoState: () => void;
}
export declare const useSaveDataSource: (backend: IAnalyticalBackend, tigerSpecificFunctions: ITigerSpecificFunctions, isEditMode: boolean) => ISaveDataSourceHook;
export {};
