import { TransformerContextProvider, TransformerTransformSchemaStepContextProvider } from '@aws-amplify/graphql-transformer-interfaces';
import { DirectiveNode, EnumTypeDefinitionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';
import { FieldWrapper, InputObjectDefinitionWrapper } from '@aws-amplify/graphql-transformer-core';
export declare const makeConditionFilterInput: (ctx: TransformerTransformSchemaStepContextProvider, name: string, object: ObjectTypeDefinitionNode) => InputObjectDefinitionWrapper;
export declare const makeSubscriptionFilterInput: (ctx: TransformerTransformSchemaStepContextProvider, name: string, object: ObjectTypeDefinitionNode) => InputObjectDefinitionWrapper;
export declare const getSubscriptionFilterInputName: (name: string) => string;
export declare const removeSubscriptionFilterInputAttribute: (ctx: TransformerTransformSchemaStepContextProvider, typeName: string, fieldName: string) => void;
export declare const addModelConditionInputs: (ctx: TransformerTransformSchemaStepContextProvider) => void;
export declare function generateModelScalarFilterInputName(typeName: string, includeFilter: boolean, isSubscriptionFilter?: boolean): string;
export declare const createEnumModelFilters: (ctx: TransformerTransformSchemaStepContextProvider, type: ObjectTypeDefinitionNode) => InputObjectTypeDefinitionNode[];
export declare function makeModelScalarFilterInputObject(type: string, supportsConditions: boolean, isSubscriptionFilter?: boolean): InputObjectTypeDefinitionNode;
export declare function makeAttributeTypeEnum(): EnumTypeDefinitionNode;
export declare function makeSubscriptionField(fieldName: string, returnTypeName: string, mutations: string[]): FieldDefinitionNode;
export declare function makeSizeInputType(): InputObjectTypeDefinitionNode;
export declare function makeEnumFilterInput(fieldWrapper: FieldWrapper): InputObjectTypeDefinitionNode;
export declare const addDirectivesToField: (ctx: TransformerTransformSchemaStepContextProvider, typeName: string, fieldName: string, directives: Array<DirectiveNode>) => void;
export declare const addDirectivesToOperation: (ctx: TransformerTransformSchemaStepContextProvider, typeName: string, operationName: string, directives: Array<DirectiveNode>) => void;
export declare const extendTypeWithDirectives: (ctx: TransformerTransformSchemaStepContextProvider, typeName: string, directives: Array<DirectiveNode>) => void;
export declare const makeModelSortDirectionEnumObject: () => EnumTypeDefinitionNode;
export declare const propagateDirectivesToNestedTypes: (ctx: TransformerContextProvider, def: ObjectTypeDefinitionNode, seenNonModelTypes: Set<string>, serviceDirectives: DirectiveNode[]) => void;
//# sourceMappingURL=common.d.ts.map