import { NormalizedScalarsMap } from "@graphql-codegen/visitor-plugin-common";
import { GraphQLSchema } from "graphql";
import { FieldType, ModelIntrospectionSchema, InputFieldType } from "../interfaces/introspection";
import { RawAppSyncModelConfig, ParsedAppSyncModelConfig, AppSyncModelVisitor } from "./appsync-visitor";
declare type UnionFieldType = {
    union: string;
};
declare type InterfaceFieldType = {
    interface: string;
};
export interface RawAppSyncModelIntrospectionConfig extends RawAppSyncModelConfig {
}
export interface ParsedAppSyncModelIntrospectionConfig extends ParsedAppSyncModelConfig {
}
export declare class AppSyncModelIntrospectionVisitor<TRawConfig extends RawAppSyncModelIntrospectionConfig = RawAppSyncModelIntrospectionConfig, TPluginConfig extends ParsedAppSyncModelIntrospectionConfig = ParsedAppSyncModelIntrospectionConfig> extends AppSyncModelVisitor<TRawConfig, TPluginConfig> {
    private readonly introspectionVersion;
    constructor(schema: GraphQLSchema, rawConfig: TRawConfig, additionalConfig: Partial<TPluginConfig>, defaultScalars?: NormalizedScalarsMap);
    generate(): string;
    protected generateModelIntrospectionSchema(): ModelIntrospectionSchema;
    private getFieldAssociation;
    private generateModelAttributes;
    private generateModelMetadata;
    private generateNonModelMetadata;
    private generateEnumMetadata;
    private generateGraphQLInputMetadata;
    private generateGraphQLOperationMetadata;
    private generateGenerationMetadata;
    private generateConversationMetadata;
    protected getType(gqlType: string): FieldType | InputFieldType | UnionFieldType | InterfaceFieldType;
    private generateModelPrimaryKeyInfo;
    private isUnionFieldType;
    private isInterfaceFieldType;
}
export {};
//# sourceMappingURL=appsync-model-introspection-visitor.d.ts.map