import { FetchRepositoryBase } from "../../../shared/index.js"; import type { CreateOriginationRequest, ElementIndex, ListOriginationsParams, ListOriginationsResponse, Origination, UpdateOriginationRequest, ValidationCheckType, ValidationReport } from "./OriginationsTypes.js"; export declare class OriginationsRepository extends FetchRepositoryBase { listOriginations(realmUid: string, params?: ListOriginationsParams): Promise; getAllOriginations(realmUid: string, filters?: Omit): Promise; getOrigination(realmUid: string, originationUid: string): Promise; createOrigination(realmUid: string, origination: CreateOriginationRequest): Promise; updateOrigination(realmUid: string, originationUid: string, origination: UpdateOriginationRequest): Promise; deleteOrigination(realmUid: string, originationUid: string): Promise; publishOrigination(realmUid: string, originationUid: string, options?: { publishAt?: string; unpublishAt?: string; forcePublish?: boolean; }): Promise<{ uid: string; }>; unpublishOrigination(realmUid: string, originationUid: string): Promise<{ uid: string; }>; /** * Build an index of all elements (steps, tasks, questions) by UID and UUID * Used for UID-to-UUID resolution and validation */ buildElementIndex(origination: Origination): ElementIndex; /** * Recursively index questions (handles nested children for group types) */ private indexQuestions; /** * Resolve a UID to UUID using the element index * Returns UUID if found, undefined otherwise */ resolveIdentifierToUuid(identifier: string, type: "step" | "task" | "question", index: ElementIndex): string | undefined; /** * Validate origination structure * Performs comprehensive validation checks and returns a report */ validateStructure(origination: Origination, checks?: ValidationCheckType[]): ValidationReport; /** * Check for broken references in rules */ private checkBrokenReferences; /** * Recursively check condition references */ private checkConditionReferences; /** * Check for duplicate UIDs within the origination */ private checkDuplicateIdentifiers; /** * Recursively check for duplicate question UIDs */ private checkDuplicateQuestionUids; /** * Check for circular dependencies in rules */ private checkCircularDependencies; /** * Collect condition dependencies from rule conditions */ private collectConditionDependencies; /** * Detect cycles in dependency graph using DFS */ private detectCycle; /** * Check for missing required properties based on task type */ private checkMissingRequiredProperties; /** * Check for unused elements (steps/tasks/questions not referenced in any rule) */ private checkUnusedElements; /** * Collect all referenced IDs from conditions */ private collectReferencedIds; } //# sourceMappingURL=OriginationsRepository.d.ts.map