import { UmbControllerBase } from '../../../../libs/class-api/index.js';
import type { UmbEntityModel } from '../../../core/entity/index.js';
import type { UmbEntityReferenceDataSource, UmbReferenceItemModel } from '../../../relations/relations/index.js';
import type { UmbPagedModel, UmbDataSourceResponse } from '../../../core/repository/index.js';
/**
 * @class UmbDataTypeReferenceServerDataSource
 * @implements {UmbEntityReferenceDataSource}
 */
export declare class UmbDataTypeReferenceServerDataSource extends UmbControllerBase implements UmbEntityReferenceDataSource {
    #private;
    /**
     * Fetches the item for the given unique from the server
     * @param {string} unique - The unique identifier of the item to fetch
     * @param {number} skip - The number of items to skip
     * @param {number} take - The number of items to take
     * @returns {Promise<UmbDataSourceResponse<UmbPagedModel<UmbReferenceItemModel>>>} - Items that are referenced by the given unique
     * @memberof UmbDataTypeReferenceServerDataSource
     */
    getReferencedBy(unique: string, skip?: number, take?: number): Promise<UmbDataSourceResponse<UmbPagedModel<UmbReferenceItemModel>>>;
    /**
     * Checks if the items are referenced by other items
     * @param {Array<string>} uniques - The unique identifiers of the items to fetch
     * @param {number} skip - The number of items to skip
     * @param {number} take - The number of items to take
     * @returns {Promise<UmbDataSourceResponse<UmbPagedModel<UmbEntityModel>>>} - Items that are referenced by other items
     * @memberof UmbDataTypeReferenceServerDataSource
     */
    getAreReferenced(uniques: Array<string>, skip?: number, take?: number): Promise<UmbDataSourceResponse<UmbPagedModel<UmbEntityModel>>>;
}
