import { ExtractSchemaType, ISchemaAny } from '@ulixee/schema'; import IQueryOptions from '../interfaces/IQueryOptions'; import ITableComponents from '../interfaces/ITableComponents'; import DatastoreInternal, { IDatastoreBinding, IQueryInternalCallbacks } from './DatastoreInternal'; export type IExpandedTableSchema = T extends Record ? { [K in keyof T]: T[K]; } : never; export default class Table = IExpandedTableSchema, TSchemaType extends ExtractSchemaType = ExtractSchemaType> { #private; readonly schemaType: TSchemaType; protected readonly components: ITableComponents; get basePrice(): bigint; get isPublic(): boolean; get schema(): TSchema; get name(): string; get description(): string | undefined; constructor(components: ITableComponents); onCreated(): Promise; onVersionMigrated(previousVersion: Table): Promise; protected get datastoreInternal(): DatastoreInternal; fetchInternal(options?: IQueryOptions & { input: TSchemaType; }, callbacks?: IQueryInternalCallbacks): Promise; insertInternal(...records: TSchemaType[]): Promise; queryInternal(sql: string, boundValues?: any[], options?: IQueryOptions, _callbacks?: IQueryInternalCallbacks): Promise; attachToDatastore(datastoreInternal: DatastoreInternal, tableName: string): void; bind(config: IDatastoreBinding): Promise; }