import { GraphQLResolveInfo } from 'graphql';
import { ViewEntity } from '..';
import { Context } from '../engine/context/Context';
import { Entity } from '../engine/entity/Entity';
import { ShadowEntity } from '../engine/entity/ShadowEntity';
import { Mutation } from '../engine/mutation/Mutation';
import { Subscription } from '../engine/subscription/Subscription';
declare type GraphQLFieldResolveFn = (source?: any, args?: {
    [key: string]: unknown;
}, context?: Context, info?: GraphQLResolveInfo) => any;
export declare const resolveByFind: (entity: Entity | ViewEntity, parentConnectionCollector?: any) => GraphQLFieldResolveFn;
export declare const resolveByFindOne: (entity: Entity | ViewEntity | ShadowEntity, idCollector: any) => GraphQLFieldResolveFn;
export declare const getNestedPayloadResolver: (entity: any, attributeNames: any, storageType: any, path?: any[]) => (source: any, args: any, context: any, info: any) => Promise<{}>;
export declare type GetMutationResolverParams = (params: {
    entity: Entity;
    entityMutation: Mutation;
    typeName: string;
    nested: boolean;
    idResolver: ({ args }: {
        args: any;
    }) => number | string;
}) => (source: any, args: any, context: Context, info: GraphQLResolveInfo) => Promise<Record<string, unknown>>;
export declare const getMutationResolver: GetMutationResolverParams;
export declare const handleSubscriptionPermission: (context: any, entity: Entity, entitySubscription: Subscription, input: any) => Promise<import("../engine/permission/Permission").ActionPermissionFilter>;
export declare const setTopicEnd: (entitySubscription: Subscription) => string;
export declare const getSubscriptionResolver: (entity: Entity, entitySubscription: Subscription, typeName: string, nested: boolean, idResolver: ({ args }: {
    args: any;
}) => number | string) => (source: any, args: any, context: any, info: any) => Promise<AsyncIterator<unknown, any, undefined>>;
export declare const getSubscriptionPayloadResolver: (entity: Entity, entitySubscription: Subscription, typeName: any) => (source: any, args: any, context: any, info: any) => Promise<{}>;
export {};
