import { scalar } from "./base.scalar"; import { pair } from "./base.pair"; import { middlewareComponent } from "./middlewareComponent"; import { httpComponent } from "./httpComponent"; import { idTypeEnum } from "./idTypeEnum"; export declare namespace model { type AnyId = scalar.Uuid | scalar.Integer | scalar.Alpha; interface Core extends scalar.AnyObject { id?: T; num?: scalar.Integer; } interface Option extends Record { mandatory?: boolean; exists?: boolean; format?: boolean; isList?: boolean; } interface Filter extends Record { } type RouteFn = (router: httpComponent.Router) => void; interface Base { /** * Returns id of given reference * */ idAsync(ref: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Returns id array of given reference array * */ idArrayAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Returns id map of given reference array * */ idMapAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Returns num by reference * */ numAsync(ref: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Returns num array of given reference array * */ numArrayAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Returns num map of given reference array * */ numMapAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Returns name by reference * */ nameAsync(ref: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Returns name array by reference array * */ nameArrayAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Returns name map of given reference array * */ nameMapAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; } interface Service = Core, P extends pair.Core = pair.Core, F extends Filter = Filter> extends Base { new (name: scalar.Alpha): Service; name: scalar.Alpha; type: scalar.Alpha; optType(type?: scalar.Alpha): Service; schema: scalar.Alpha; optSchema(schema?: scalar.Alpha): Service; table: scalar.Alpha; optTable(table?: scalar.Alpha, schema?: scalar.Alpha): Service; db: { table: string; schema: string; }; setCustoms(): void; folder: scalar.Alpha; optFolder(folder?: scalar.Alpha): Service; route: RouteFn; optRoute(fn?: RouteFn): Service; pairHandle: middlewareComponent.CmsMode; optPairHandle(option?: middlewareComponent.CmsModeOption): Service; _cacheHashId(doc: E): scalar.Title; _cacheHashNum(doc: E): scalar.Title; _cacheGetAsync(REQ: httpComponent.Req, hash: scalar.Title): Promise; _cacheSetAsync(REQ: httpComponent.Req, doc: E, ...parts: Array): Promise; _cacheDeleteAsync(REQ: httpComponent.Req, doc: E): Promise; /** * Finds record with any reference (id or num) * */ findAsync(ref: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Finds record with id * */ findByIdAsync(id: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Finds record with num * */ findByNumAsync(num: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; /** * Lists records with any reference (id or num) * */ findArrayAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Formats document * */ formatAsync(doc: E, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise; pairSize: scalar.Integer; optPairSize(pairSize: scalar.Integer): Service; suggestSize: scalar.Integer; optSuggestSize(suggestSize: scalar.Integer): Service; _suggestQuery(q: unknown, keyword: string, level: 'starts' | 'includes' | 'search', ids?: Array, OPT?: Option, REQ?: httpComponent.Req): void; /** * Builds pair * */ _buildPair(doc: E, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): P; /** * Builds name * */ _buildName(doc: E, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): scalar.Title; /** * Returns default pair * */ defaultPair(OPT?: scalar.AnyObject, REQ?: httpComponent.Req): P; /** * Lists pairs * */ listPairsAsync(filter: F, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * Suggests pairs by keyword * */ suggestPairsAsync(keyword: scalar.Unknown, filter: F, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; /** * get pair by ref * */ pairAsync(ref: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise

; /** * get pair array by ref array * */ pairArrayAsync(refs: scalar.Unknown, OPT?: scalar.AnyObject, REQ?: httpComponent.Req): Promise>; } }