import { AppSyncAuthConfiguration, AssetProvider, SqlDirectiveDataSourceStrategy, DataSourceStrategiesProvider, GraphQLAPIProvider, ModelDataSourceStrategy, NestedStackProvider, RDSLayerMapping, RDSLayerMappingProvider, RDSSNSTopicMappingProvider, StackManagerProvider, SynthParameters, TransformerContextMetadataProvider, TransformerContextOutputProvider, TransformerContextProvider, TransformerDataSourceManagerProvider, TransformParameterProvider, TransformParameters, RDSSNSTopicMapping, LogConfig } from '@aws-amplify/graphql-transformer-interfaces';
import { DocumentNode } from 'graphql';
import { Construct } from 'constructs';
import { ResolverConfig } from '../config/transformer-config';
import { TransformerContextProviderRegistry } from './provider-registry';
import { ResolverManager } from './resolver';
import { TransformerResourceHelper } from './resource-helper';
export { TransformerResolver, NONE_DATA_SOURCE_NAME } from './resolver';
export { StackManager } from './stack-manager';
export declare class TransformerContextMetadata implements TransformerContextMetadataProvider {
    private metadata;
    get<T>(key: string): T | undefined;
    set<T>(key: string, val: T): void;
    has(key: string): boolean;
}
export interface TransformerContextConstructorOptions extends DataSourceStrategiesProvider, RDSLayerMappingProvider, RDSSNSTopicMappingProvider {
    assetProvider: AssetProvider;
    authConfig: AppSyncAuthConfiguration;
    inputDocument: DocumentNode;
    nestedStackProvider: NestedStackProvider;
    parameterProvider: TransformParameterProvider | undefined;
    resolverConfig?: ResolverConfig;
    scope: Construct;
    stackMapping: Record<string, string>;
    synthParameters: SynthParameters;
    transformParameters: TransformParameters;
    logging?: true | LogConfig;
}
export declare class TransformerContext implements TransformerContextProvider {
    readonly output: TransformerContextOutputProvider;
    readonly resolvers: ResolverManager;
    readonly dataSources: TransformerDataSourceManagerProvider;
    readonly providerRegistry: TransformerContextProviderRegistry;
    readonly stackManager: StackManagerProvider;
    readonly assetProvider: AssetProvider;
    readonly resourceHelper: TransformerResourceHelper;
    readonly transformParameters: TransformParameters;
    _api?: GraphQLAPIProvider;
    readonly authConfig: AppSyncAuthConfiguration;
    private resolverConfig;
    readonly dataSourceStrategies: Record<string, ModelDataSourceStrategy>;
    readonly sqlDirectiveDataSourceStrategies: SqlDirectiveDataSourceStrategy[];
    readonly rdsLayerMapping?: RDSLayerMapping;
    readonly rdsSnsTopicMapping?: RDSSNSTopicMapping;
    metadata: TransformerContextMetadata;
    readonly synthParameters: SynthParameters;
    readonly inputDocument: DocumentNode;
    readonly logging?: true | LogConfig;
    constructor(options: TransformerContextConstructorOptions);
    get api(): GraphQLAPIProvider;
    getResolverConfig: <ResolverConfig_1>() => ResolverConfig_1 | undefined;
    isProjectUsingDataStore(): boolean;
}
//# sourceMappingURL=index.d.ts.map