import { DataSet, DataSetAddExternalEndpointResponse, DataSetExternalEndpointRequest, DataSetPlugin, DataSetStoragePlugin, GetAccessPermissionRequest, IsProjectAuthorizedForDatasetsRequest, PermissionsResponse } from '@aws/swb-app';
import { ListDataSetAccessPermissionsRequest } from '@aws/swb-app/lib/dataSets/listDataSetAccessPermissionsRequestParser';
import { ProjectAddAccessRequest } from '@aws/swb-app/lib/dataSets/projectAddAccessRequestParser';
import { ProjectRemoveAccessRequest } from '@aws/swb-app/lib/dataSets/projectRemoveAccessRequestParser';
import { AuthenticatedUser, DynamicAuthorizationService } from '@aws/workbench-core-authorization';
import { PaginatedResponse } from '@aws/workbench-core-base';
import { AddRemoveAccessPermissionRequest, CreateProvisionDatasetRequest, DataSetsAuthorizationPlugin, DataSetService as WorkbenchDataSetService } from '@aws/workbench-core-datasets';
import { DatabaseServicePlugin } from './databaseService';
export declare class DataSetService implements DataSetPlugin {
    readonly storagePlugin: DataSetStoragePlugin;
    private _dataSetsAuthService;
    private _workbenchDataSetService;
    private _databaseService;
    private _dynamicAuthService;
    constructor(dataSetStoragePlugin: DataSetStoragePlugin, workbenchDataSetService: WorkbenchDataSetService, dataSetAuthService: DataSetsAuthorizationPlugin, databaseService: DatabaseServicePlugin, dynamicAuthService: DynamicAuthorizationService);
    removeDataSet(dataSetId: string, authenticatedUser: AuthenticatedUser): Promise<void>;
    private _associatedProjects;
    addDataSetExternalEndpoint(request: DataSetExternalEndpointRequest): Promise<DataSetAddExternalEndpointResponse>;
    getDataSet(dataSetId: string, authenticatedUser: AuthenticatedUser): Promise<DataSet>;
    importDataSet(request: CreateProvisionDatasetRequest): Promise<DataSet>;
    listDataSets(user: AuthenticatedUser, pageSize: number, paginationToken: string | undefined): Promise<PaginatedResponse<DataSet>>;
    listDataSetsForProject(projectId: string, user: AuthenticatedUser, pageSize: number, paginationToken: string | undefined): Promise<PaginatedResponse<DataSet>>;
    listDataSetAccessPermissions(request: ListDataSetAccessPermissionsRequest): Promise<PermissionsResponse>;
    provisionDataSet(projectId: string, request: CreateProvisionDatasetRequest): Promise<DataSet>;
    getSinglePartFileUploadUrl(dataSetId: string, fileName: string, authenticatedUser: AuthenticatedUser): Promise<string>;
    addAccessPermission(params: AddRemoveAccessPermissionRequest): Promise<PermissionsResponse>;
    getAccessPermissions(params: GetAccessPermissionRequest): Promise<PermissionsResponse>;
    getAllDataSetAccessPermissions(datasetId: string): Promise<PermissionsResponse>;
    removeAccessPermissions(params: AddRemoveAccessPermissionRequest): Promise<PermissionsResponse>;
    removeAllAccessPermissions(datasetId: string, authenticatedUser: AuthenticatedUser): Promise<PermissionsResponse>;
    addAccessForProject(request: ProjectAddAccessRequest): Promise<PermissionsResponse>;
    removeAccessForProject(request: ProjectRemoveAccessRequest): Promise<PermissionsResponse>;
    isProjectAuthorizedForDatasets(request: IsProjectAuthorizedForDatasetsRequest): Promise<boolean>;
    private _addAuthZPermissionsForDataset;
    private _removeAuthZPermissionsForDataset;
}
//# sourceMappingURL=dataSetService.d.ts.map