import { Cache, Repository, Transaction, Transactionable } from '@tego/server'; import { ChildOptions, SchemaNode } from './dao/ui_schema_node_dao'; export interface GetJsonSchemaOptions { includeAsyncNode?: boolean; readFromCache?: boolean; transaction?: Transaction; } export interface GetPropertiesOptions { readFromCache?: boolean; transaction?: Transaction; } type BreakRemoveOnType = { [key: string]: any; }; export interface removeParentOptions extends Transactionable { removeParentsIfNoChildren?: boolean; breakRemoveOn?: BreakRemoveOnType; } interface InsertAdjacentOptions extends removeParentOptions { wrap?: any; } export declare class UiSchemaRepository extends Repository { cache: Cache; get uiSchemasTableName(): any; get uiSchemaTreePathTableName(): any; static schemaToSingleNodes(schema: any, carry?: SchemaNode[], childOptions?: ChildOptions): SchemaNode[]; setCache(cache: Cache): void; /** * clear cache with xUid which in uiSchemaTreePath's Path * @param {string} xUid * @param {Transaction} transaction * @returns {Promise} */ clearXUidPathCache(xUid: string, transaction: Transaction): Promise; tableNameAdapter(tableName: any): any; sqlAdapter(sql: string): any; getProperties(uid: string, options?: GetPropertiesOptions): Promise; getJsonSchema(uid: string, options?: GetJsonSchemaOptions): Promise; nodesToSchema(nodes: any, rootUid: any): any; clearAncestor(uid: string, options?: Transactionable): Promise; patch(newSchema: any, options?: any): Promise; batchPatch(schemas: any[], options?: any): Promise; removeEmptyParents(options: Transactionable & { uid: string; breakRemoveOn?: BreakRemoveOnType; }): Promise; recursivelyRemoveIfNoChildren(options: Transactionable & { uid: string; breakRemoveOn?: BreakRemoveOnType; }): Promise; remove(uid: string, options?: Transactionable & removeParentOptions): Promise; insertAdjacent(position: 'beforeBegin' | 'afterBegin' | 'beforeEnd' | 'afterEnd', target: string, schema: any, options?: InsertAdjacentOptions): Promise; duplicate(uid: string, options?: Transactionable): Promise; insert(schema: any, options?: Transactionable): Promise; insertNewSchema(schema: any, options?: Transactionable & { returnNode?: boolean; position?: string; target?: string; }): Promise; insertSingleNode(schema: SchemaNode, options: Transactionable & removeParentOptions): Promise; protected updateNode(uid: string, schema: any, transaction?: Transaction): Promise; protected childrenCount(uid: any, transaction: any): Promise; protected isLeafNode(uid: any, transaction: any): Promise; protected findParentUid(uid: any, transaction?: any): Promise; protected findNodeSchemaWithParent(uid: any, transaction: any): Promise<{ parentUid: string; schema: any; }>; protected isSingleChild(uid: any, transaction: any): Promise; protected insertBeside(targetUid: string, schema: any, side: 'before' | 'after', options?: InsertAdjacentOptions): Promise; protected insertInner(targetUid: string, schema: any, position: 'first' | 'last', options?: InsertAdjacentOptions): Promise; protected insertAfterBegin(targetUid: string, schema: any, options?: InsertAdjacentOptions): Promise; protected insertBeforeEnd(targetUid: string, schema: any, options?: InsertAdjacentOptions): Promise; protected insertBeforeBegin(targetUid: string, schema: any, options?: InsertAdjacentOptions): Promise; protected insertAfterEnd(targetUid: string, schema: any, options?: InsertAdjacentOptions): Promise; protected insertNodes(nodes: SchemaNode[], options?: Transactionable): Promise; private doGetProperties; private doGetJsonSchema; private ignoreSchemaProperties; private breakOnMatched; private schemaExists; private regenerateUid; private insertSchemaRecord; private prepareSingleNodeForInsert; } export default UiSchemaRepository;