import { ExtractSchemaType } from '@ulixee/schema'; import IQueryOptions from '../interfaces/IQueryOptions'; import ITableComponents from '../interfaces/ITableComponents'; import DatastoreApiClient from './DatastoreApiClient'; import { IQueryInternalCallbacks } from './DatastoreInternal'; import Table, { IExpandedTableSchema } from './Table'; export interface IPassthroughTableComponents, TTableName extends string, TSchema> extends ITableComponents { remoteTable: `${keyof TRemoteSources & string}.${TTableName}`; } export default class PassthroughTable, TTableName extends string, TSchema extends IExpandedTableSchema = IExpandedTableSchema, TSchemaType extends ExtractSchemaType = ExtractSchemaType, TComponents extends IPassthroughTableComponents = IPassthroughTableComponents> extends Table { readonly remoteSource: string; readonly remoteTable: string; remoteDatastoreId: string; remoteVersion: string; remoteDomain: string; protected upstreamClient: DatastoreApiClient; constructor(components: TComponents); queryInternal(sql: string, boundValues?: any[], options?: IQueryOptions, callbacks?: IQueryInternalCallbacks): Promise; protected injectRemoteClient(): Promise; }