import { Result } from "@webiny/feature/api"; import type { CmsEntryUniqueValue, CmsModel } from "../../../types/index.js"; import type { EntryNotAuthorizedError, EntryPersistenceError } from "../../../domain/contentEntry/errors.js"; import type { FieldNotSearchableError, InvalidWhereConditionError } from "./errors.js"; export interface GetUniqueFieldValuesParams { where: { latest?: boolean; published?: boolean; createdBy?: string; [key: string]: any; }; fieldId: string; } /** * GetUniqueFieldValues Use Case - Fetches unique values for a specific field. * Used for filtering/autocomplete in the UI. */ export interface IGetUniqueFieldValuesUseCase { execute(model: CmsModel, params: GetUniqueFieldValuesParams): Promise>; } export interface IGetUniqueFieldValuesUseCaseErrors { notAuthorized: EntryNotAuthorizedError; storage: EntryPersistenceError; fieldNotSearchable: FieldNotSearchableError; invalidWhere: InvalidWhereConditionError; } type UseCaseError = IGetUniqueFieldValuesUseCaseErrors[keyof IGetUniqueFieldValuesUseCaseErrors]; export declare const GetUniqueFieldValuesUseCase: import("@webiny/di").Abstraction; export declare namespace GetUniqueFieldValuesUseCase { type Interface = IGetUniqueFieldValuesUseCase; type Params = GetUniqueFieldValuesParams; type Error = UseCaseError; type Return = Promise>; } /** * GetUniqueFieldValuesRepository - Fetches unique field values from storage. */ export interface IGetUniqueFieldValuesRepository { execute(model: CmsModel, params: GetUniqueFieldValuesParams): Promise>; } export interface IGetUniqueFieldValuesRepositoryErrors { storage: EntryPersistenceError; } type RepositoryError = IGetUniqueFieldValuesRepositoryErrors[keyof IGetUniqueFieldValuesRepositoryErrors]; export declare const GetUniqueFieldValuesRepository: import("@webiny/di").Abstraction; export declare namespace GetUniqueFieldValuesRepository { type Interface = IGetUniqueFieldValuesRepository; type Error = RepositoryError; } export {};