import type { UmbDataSourceResponse } from '../data-source-response.interface.js';
import type { UmbReadDetailDataSource } from './read/index.js';
import type { UmbDeepPartialObject } from '../../utils/index.js';
import type { UmbControllerHost } from '../../../../libs/controller-api/index.js';
export interface UmbDetailDataSourceConstructor<DetailType = any, UmbDetailDataSourceType extends UmbDetailDataSource<DetailType> = UmbDetailDataSource<DetailType>> {
    new (host: UmbControllerHost): UmbDetailDataSourceType;
}
export interface UmbDetailDataSource<DetailType> extends UmbReadDetailDataSource<DetailType> {
    createScaffold(preset?: UmbDeepPartialObject<DetailType>): Promise<UmbDataSourceResponse<DetailType>>;
    create(data: DetailType, parentUnique: string | null): Promise<UmbDataSourceResponse<DetailType>>;
    update(data: DetailType): Promise<UmbDataSourceResponse<DetailType>>;
    delete(unique: string): Promise<UmbDataSourceResponse<unknown>>;
}
