import { EApiDtoType, EApiRouteType } from '../../../../enum/decorator/api';
import { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
import { IApiControllerGetListQueryPlan } from '../../../../interface/class/api/controller/get-list/query';
import { IApiControllerProperties } from '../../../../interface/decorator/api';
import { IApiEntity } from '../../../../interface/entity';
import { Type } from '@nestjs/common';
import { TApiControllerPropertiesRoute } from '../../../../type/decorator/api/controller';
/**
 * Resolves a DTO class for a generated controller route.
 * Prefers an explicitly configured DTO and falls back to auto-generation.
 * @param {IApiControllerProperties<E>} properties - Controller configuration
 * @param {IApiEntity<E>} entity - Entity metadata
 * @param {R} method - Route type
 * @param {EApiDtoType} dtoType - DTO kind to resolve
 * @param {TApiControllerPropertiesRoute<E, R>} routeConfig - Route-specific configuration
 * @param {IApiControllerGetListQueryPlan} [queryPlan] - Route-scoped plan for dynamic GET_LIST QUERY DTO generation.
 * @returns {Type<unknown> | undefined} -The resolved DTO class or undefined if no DTO is configured
 * @template E - Entity type
 * @template R - Route type
 */
export declare function ApiControllerGetDto<E extends IApiBaseEntity, R extends EApiRouteType>(properties: IApiControllerProperties<E>, entity: IApiEntity<E>, method: R, dtoType: EApiDtoType, routeConfig: TApiControllerPropertiesRoute<E, R>, queryPlan?: IApiControllerGetListQueryPlan): Type<unknown> | undefined;
