import { ClassType } from 'type-graphql';
import { BaseEntity, EntitySchema } from 'typeorm';
import { EntityUpdateHelperOptions } from './EntityUpdateHelper';
import { ReactAdminDataProvider } from "./types/ReactAdminDataProvider";
import { ReturnTypeFuncValue } from "type-graphql/dist/decorators/types";
export declare function createBaseCrudResolver<ReturnType extends ReturnTypeFuncValue, CreateType extends ReturnTypeFuncValue, EntityType extends ClassType>(objectTypeCls: ClassType<ReturnType>, inputTypeCls: ClassType<CreateType>, ORMEntity: EntityType, updateHelperOptions?: Partial<EntityUpdateHelperOptions>): ClassType<ReactAdminDataProvider<ReturnType, CreateType, CreateType>>;
/**
 * Generates base class for your resolver
 * @param config Resolver config
 */
export declare function createAdminResolver<ReturnType extends ReturnTypeFuncValue, CreateType extends ReturnTypeFuncValue, UpdateType extends ReturnTypeFuncValue, EntityType extends EntitySchema<any>>(config: {
    /** GQL type which resolver returns*/
    return: ReturnType;
    /** name part of all resolver methods*/
    name?: string;
    /** GQL  input type for entity creation*/
    create: ClassType<CreateType>;
    /** GQL  input type for entity update,optional*/
    update?: ClassType<UpdateType>;
    /** TypeOrm Entity class*/
    entity: ClassType;
    updateHelperOptions?: Partial<EntityUpdateHelperOptions>;
}): ClassType<ReactAdminDataProvider<EntityType, CreateType, UpdateType extends undefined ? CreateType : UpdateType>>;
export declare function validateEntityRelations<ORM extends BaseEntity>(entityClass: any, id: number, primaryKey: string): Promise<ORM>;
