///
import * as Sequelize from 'sequelize';
import { SpecType } from 'pretur.spec';
import { Query, MutateRequest } from 'pretur.sync';
import { ResolveResult } from './resolver';
import { SyncResult } from './synchronizer';
import { Provider } from './provider';
export declare type Transaction = Sequelize.Transaction;
export interface ProviderMap {
[scope: string]: {
[model: string]: Provider;
};
}
export interface ProviderPool {
providers: M;
resolve(transaction: Transaction, scope: string, model: T['name'], query: Query, context?: any): Promise>;
sync(transaction: Transaction, item: MutateRequest, context?: any): Promise>;
initialize(): void;
}
export declare function buildProviderPool(providers: M): ProviderPool;