import { AliasHierarchyVisitor } from "./AliasHierarchyVisitor"; import { MappedDataSource } from "./MappedDataSource"; import { MappedField } from "./MappedField"; import { MappedSingleSourceQueryOperation } from "./MappedSingleSourceQueryOperation"; import { ResolveInfoVisitor } from "./ResolveInfoVisitor"; import { Dict } from "./utils/util-types"; import { MappedAssociation } from "./MappedAssociation"; import { SourceAwareOperationResolver, BaseStoreParams } from "./SourceAwareOperationResolver"; import { SourceAwareResolverContext } from "./SourceAwareResolverContext"; /** * @api-category ConfigType */ export interface PrimaryRowMapper { readonly field: MappedField; readonly tablePath: string[]; readonly columnAlias?: string; } /** * @api-category ConfigType */ export interface PreFetchedRowMapper { readonly propertyPath: string[]; readonly result: Promise; readonly reverseAssociate: (parents: TParent[], results: TResult[]) => void; } /** * @api-category ConfigType */ export interface PostFetchedRowMapper { readonly propertyPath: string[]; readonly run: (parents: TParent[]) => Promise; readonly reverseAssociate: (parents: TParent[], results: TResult[]) => void; } export declare type ColumnSelection = { [k: string]: string; }[]; /** * @api-category ConfigType */ export interface StoreQueryParams extends BaseStoreParams { readonly whereParams: Dict; readonly columns: ColumnSelection; readonly primaryMappers: PrimaryRowMapper[]; readonly secondaryMappers: { readonly preFetched: PreFetchedRowMapper>[]; readonly postFetched: PostFetchedRowMapper>[]; }; } /** * Implements query operation resolution on a single data source * * @api-category CRUDResolvers */ export declare class SingleSourceQueryOperationResolver, TSrc extends MappedDataSource, TMappedOperation extends MappedSingleSourceQueryOperation, TArgs extends {}, TResolved> extends SourceAwareOperationResolver { resolverContext: TCtx; resultRows?: Dict[]; aliasColumnsToTableScope: boolean; private paginator?; constructor(resolverContext: TCtx); get aliasHierarchyVisitor(): AliasHierarchyVisitor; get storeParams(): StoreQueryParams; resolve(): Promise; getQueryBuilder(): import("knex").QueryBuilder; runQuery(): Promise; resolveFields(tablePath: string[] | undefined, aliasHierarchyVisitor: AliasHierarchyVisitor, dataSource: TCurSrc, resolveInfoVisitor: ResolveInfoVisitor, typeName?: string, ignoreMissing?: boolean): void; private resolveFieldName; private resolveAssociation; private deriveJoinedQuery; private invokeSideLoader; associateResultsWithParents(association: MappedAssociation): (parents: Dict[], results: Dict[]) => void; private deriveColumnsForField; get primaryFieldMappers(): PrimaryRowMapper[]; }