import { Query } from 'pretur.sync'; import { Spec, SpecType, Model } from 'pretur.spec'; import { Pool } from './pool'; export interface ResolveResult { data: Partial>[]; count?: number; } export interface Resolver { (query?: Partial>, context?: any): Promise>; } export interface CustomResolver { (query: Query | undefined, pool: Pool, context: any): Promise>; } export interface UnitializedResolver { resolver: Resolver; initialize(pool: Pool): void; } export interface ResolveInterceptor { (query: Query | undefined, result: ResolveResult, context: any): Promise>; } export interface BuildResolverOptions { intercept?: ResolveInterceptor; queryTransformer?(query: Query | undefined): Query | undefined; } export declare function buildCustomResolver(_: Spec, resolver: CustomResolver): UnitializedResolver; export declare function buildResolver(spec: Spec, options?: BuildResolverOptions): UnitializedResolver;