import { CfnMapping } from 'aws-cdk-lib';
import { Expression } from 'graphql-mapping-template';
import { SQLLambdaResourceNames } from '@aws-amplify/graphql-transformer-core';
import { GraphQLAPIProvider, RDSLayerMapping, TransformerContextProvider, VpcConfig, ProvisionedConcurrencyConfig, SqlModelDataSourceDbConnectionConfig } from '@aws-amplify/graphql-transformer-interfaces';
import { IRole } from 'aws-cdk-lib/aws-iam';
import { IFunction } from 'aws-cdk-lib/aws-lambda';
import { Construct } from 'constructs';
import { ObjectTypeDefinitionNode } from 'graphql';
import { AwsCustomResource } from 'aws-cdk-lib/custom-resources';
export type OPERATIONS = 'CREATE' | 'UPDATE' | 'DELETE' | 'GET' | 'LIST' | 'SYNC';
export declare enum CredentialStorageMethod {
    SSM = "SSM",
    SECRETS_MANAGER = "SECRETS_MANAGER"
}
export declare const setRDSLayerMappings: (scope: Construct, mapping: RDSLayerMapping, resourceNames: SQLLambdaResourceNames) => CfnMapping;
export declare const createRdsLambda: (scope: Construct, apiGraphql: GraphQLAPIProvider, lambdaRole: IRole, layerVersionArn: string, resourceNames: SQLLambdaResourceNames, credentialStorageMethod: CredentialStorageMethod | undefined, environment?: {
    [key: string]: string;
} | undefined, sqlLambdaVpcConfig?: VpcConfig, sqlLambdaProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfig) => IFunction;
export declare const createLayerVersionCustomResource: (scope: Construct, resourceNames: SQLLambdaResourceNames) => AwsCustomResource;
export declare const createRdsPatchingLambda: (scope: Construct, apiGraphql: GraphQLAPIProvider, lambdaRole: IRole, resourceNames: SQLLambdaResourceNames, environment?: {
    [key: string]: string;
} | undefined, sqlLambdaVpcConfig?: VpcConfig) => IFunction;
export declare const createRdsLambdaRole: (roleName: string, scope: Construct, secretEntry: SqlModelDataSourceDbConnectionConfig, resourceNames: SQLLambdaResourceNames) => IRole;
export declare const createRdsPatchingLambdaRole: (roleName: string, scope: Construct, functionArn: string, resourceNames: SQLLambdaResourceNames) => IRole;
export declare const generateLambdaRequestTemplate: (tableName: string, operation: string, operationName: string, ctx: TransformerContextProvider) => string;
export declare const generateGetLambdaResponseTemplate: (isSyncEnabled: boolean) => string;
export declare const generateDefaultLambdaResponseMappingTemplate: (isSyncEnabled: boolean, mutation?: boolean) => string;
export declare const getNonScalarFields: (object: ObjectTypeDefinitionNode | undefined, ctx: TransformerContextProvider) => string[];
export declare const getArrayFields: (object: ObjectTypeDefinitionNode | undefined, ctx: TransformerContextProvider) => string[];
export declare const constructNonScalarFieldsStatement: (tableName: string, ctx: TransformerContextProvider) => Expression;
export declare const constructArrayFieldsStatement: (tableName: string, ctx: TransformerContextProvider) => Expression;
export declare const constructFieldMappingInput: () => Expression;
export declare const constructAuthFilterStatement: (keyName: string) => Expression;
//# sourceMappingURL=resolver.d.ts.map