import { Database } from '@tego/server'; type tableInfo = { tableName: string; schema?: string; }; type GetCollectionOptions = { tableInfo: tableInfo; localOptions?: PartialCollectionOptions; }; export type LocalData = { [collectionName: string]: PartialCollectionOptions; }; type GetCollectionsOptions = { localData?: LocalData; }; export type PartialCollectionOptions = Partial & { fields?: Partial[]; }>; interface CollectionOptions { name: string; schema?: string; tableName: string; title?: string; timestamps?: boolean; filterTargetKey?: string; fields: FieldOptions[]; unsupportedFields?: UnsupportedFieldOptions[]; } interface UnsupportedFieldOptions { rawType: string; name: string; supported: false; } interface FieldOptions { name: string; field: string; rawType: string; type: string; description?: string; interface?: string; uiSchema?: any; possibleTypes?: string[]; defaultValue?: any; primaryKey: boolean; unique: boolean; allowNull?: boolean; autoIncrement?: boolean; } export declare class DatabaseIntrospector { private db; constructor(db: Database); getCollections(options?: GetCollectionsOptions): Promise>; getCollection(options: GetCollectionOptions): Promise; loadCollection(options: CollectionOptions): void; loadCollections(options: { collections: CollectionOptions[]; }): void; tableInfoToCollectionOptions(tableInfo: tableInfo): { name: string; schema?: string; tableName: string; title?: string; }; private collectionOptionsByFields; private mergeLocalDataIntoCollectionOptions; private columnInfoToFieldOptions; private getDefaultInterfaceByType; private columnAttribute; } export {};