import type { CrudService, GetAllParams, GetAllResponse } from '../../../MasterCrud'; import type { DynamicField } from '../../core/types/DynamicField.types'; import type { DynamicEntity } from '../../core/types/DynamicEntity.types'; import type { DynamicEntitiesFetcher } from '../../core/api/fetcher'; export interface Feature { id: string; code: string; name: string; description?: string; type: 'Master' | 'Document' | 'Transaction'; active: boolean; allowsPlansAndCriteria: boolean; hasFileManagement?: boolean; createdAt?: string; updatedAt?: string; featureEntities?: FeatureEntity[]; } export interface FeatureEntity { id: string; featureId: string; dynamicEntityId: string; renderMode: 'tab' | 'modal' | 'inline'; order: number; properties?: Record; dynamicEntity?: DynamicEntity; } export interface SystemEntityStatus { id: string; code: string; description?: string; isEnabled: boolean; enabledSystemEntityId?: string; renderMode?: 'tab' | 'inline'; enabledBy?: string; enabledAt?: string; } export interface EnableSystemEntityResult { enabledSystemEntityId: string; featureEntityId: string; } export declare class FeatureService implements CrudService { private baseUrl; private http; /** * @param baseUrl Raíz de la API. * @param fetcher Transporte del anfitrión (con `Authorization` y demás * cabeceras). Ausente → `fetch` global, igual que antes. */ constructor(baseUrl: string, fetcher?: DynamicEntitiesFetcher); getAll(params: GetAllParams): Promise>; getById(id: string | number): Promise; getByCode(code: string): Promise; getByPath(path: string): Promise; create(data: Partial): Promise; update(id: string | number, feature: Partial): Promise; setFileManagement(id: string, hasFileManagement: boolean): Promise; delete(id: string | number): Promise; createEntity(entity: Partial): Promise; updateEntity(id: string, entity: Partial): Promise; deleteEntity(id: string): Promise; addFeatureEntity(featureId: string, featureEntity: Partial): Promise; updateFeatureEntity(featureId: string, dynamicEntityId: string, featureEntity: Partial): Promise; removeFeatureEntity(featureId: string, dynamicEntityId: string): Promise; saveFields(entityId: string, fields: DynamicField[]): Promise; saveRules(entityId: string, rules: any[]): Promise; getSystemEntities(featureId: string): Promise; enableSystemEntity(featureId: string, dynamicEntityId: string, renderMode: 'tab' | 'inline'): Promise; disableSystemEntity(featureId: string, enabledSystemEntityId: string): Promise; } //# sourceMappingURL=FeatureService.d.ts.map