import { TransformerPluginType, TransformerModelProvider, AppSyncDataSourceType, TransformerContextProvider, TransformerResolverProvider, QueryFieldType, MutationFieldType, SubscriptionFieldType, DataSourceInstance, TransformerPluginProvider, TransformerModelEnhancementProvider, TransformerAuthProvider, TransformerLog } from '@aws-amplify/graphql-transformer-interfaces'; import { DirectiveDefinitionNode, TypeDefinitionNode, DocumentNode, ObjectTypeDefinitionNode, InputValueDefinitionNode } from 'graphql'; export declare abstract class TransformerPluginBase implements TransformerPluginProvider { readonly pluginType: TransformerPluginType; readonly name: string; readonly directive: DirectiveDefinitionNode; readonly typeDefinitions: TypeDefinitionNode[]; private logs; constructor(name: string, document: DocumentNode | string, pluginType?: TransformerPluginType); private log; protected error(message: string): void; protected warn(message: string): void; protected info(message: string): void; protected debug(message: string): void; getLogs(): TransformerLog[]; } export declare abstract class TransformerModelBase extends TransformerPluginBase implements TransformerModelProvider { constructor(name: string, document: DocumentNode | string, type?: TransformerPluginType); abstract getDataSourceType: () => AppSyncDataSourceType; abstract generateGetResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateListResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateCreateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateUpdateResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateDeleteResolver: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateOnCreateResolver?: (ctx: TransformerContextProvider, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateOnUpdateResolver?: (ctx: TransformerContextProvider, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateOnDeleteResolver?: (ctx: TransformerContextProvider, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract generateSyncResolver?: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, typeName: string, fieldName: string, resolverLogicalId: string, directive?: DirectiveDefinitionNode) => TransformerResolverProvider; abstract getQueryFieldNames: (type: ObjectTypeDefinitionNode, directive?: DirectiveDefinitionNode) => Set<{ fieldName: string; typeName: string; type: QueryFieldType; }>; abstract getMutationFieldNames: (type: ObjectTypeDefinitionNode, directive?: DirectiveDefinitionNode) => Set<{ fieldName: string; typeName: string; type: MutationFieldType; }>; abstract getSubscriptionFieldNames: (type: ObjectTypeDefinitionNode, directive?: DirectiveDefinitionNode) => Set<{ fieldName: string; typeName: string; type: SubscriptionFieldType; }>; abstract getDataSourceResource: (type: ObjectTypeDefinitionNode) => DataSourceInstance; abstract getInputs: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, operation: { fieldName: string; typeName: string; type: QueryFieldType | MutationFieldType | SubscriptionFieldType; }) => InputValueDefinitionNode[]; abstract getOutputType: (ctx: TransformerContextProvider, type: ObjectTypeDefinitionNode, operation: { fieldName: string; typeName: string; type: QueryFieldType | MutationFieldType | SubscriptionFieldType; }) => ObjectTypeDefinitionNode; } export declare abstract class TransformerModelEnhancerBase extends TransformerModelBase implements TransformerModelEnhancementProvider { constructor(name: string, doc: DocumentNode | string, type?: TransformerPluginType); } export declare abstract class TransformerAuthBase extends TransformerPluginBase implements TransformerAuthProvider { constructor(name: string, doc: DocumentNode | string, type?: TransformerPluginType); } //# sourceMappingURL=transformer-plugin-base.d.ts.map