import { CategoryTreeNode } from '../../Utils/CategoryUtils'; import { RecordInstance } from '../../Utils/WdkModel'; declare type FilterSpec = { /** Search string */ filterTerm: string; /** Record attributes to search in */ filterAttributes: string[]; /** Record tables to search in */ filterTables: string[]; }; export interface PartialRecordRequest { attributes?: string[]; tables?: string[]; } /** * Filter the results of an answer and return the filtered results. */ export declare function filterRecords(records: RecordInstance[], filterSpec: FilterSpec): RecordInstance[]; /** * Combine appropriate fields from the record into a searchable string. * * The approach here is pretty basic and probably ineffecient: * - Convert all attribute values to an array of values. * - Convert all table values to a flat array of values. * - Combine the above arrays into a single array. * - Join the array with a control character. * * There is much room for performance tuning here. */ export declare function getSearchableString(filterAttributes: string[], filterTables: string[], record: RecordInstance): string; export declare const isInternalNode: (node: any) => boolean; export declare const isNotInternalNode: (node: any) => boolean; export declare const isAttributeNode: (node: any) => boolean; export declare const isTableNode: (node: any) => boolean; export declare function getAttributeNames(categoryTree: CategoryTreeNode): string[]; export declare function getTableNames(categoryTree: CategoryTreeNode): string[]; /** Creates a leaf predicate for the given recordClass */ export declare function isLeafFor(recordClassName: string): (node: CategoryTreeNode) => boolean; export {}; //# sourceMappingURL=RecordUtils.d.ts.map