import { JavaDeclarationBlock } from '../languages/java-declaration-block';
import { AppSyncModelVisitor, CodeGenField, CodeGenModel, ParsedAppSyncModelConfig, RawAppSyncModelConfig } from './appsync-visitor';
import { AuthDirective } from '../utils/process-auth';
export declare class AppSyncModelJavaVisitor<TRawConfig extends RawAppSyncModelConfig = RawAppSyncModelConfig, TPluginConfig extends ParsedAppSyncModelConfig = ParsedAppSyncModelConfig> extends AppSyncModelVisitor<TRawConfig, TPluginConfig> {
    protected additionalPackages: Set<string>;
    protected usingAuth: boolean;
    protected isGenerateModelsForLazyLoadAndCustomSelectionSet(): boolean;
    generate(): string;
    generateClassLoader(): string;
    generateEnums(): string;
    generateModelClasses(): string;
    generateNonModelClasses(): string;
    generatePackageName(): string;
    generateModelClass(model: CodeGenModel): string;
    generateNonModelClass(nonModel: CodeGenModel): string;
    protected generatePackageHeader(isModel?: boolean): string;
    protected generateImportStatements(packages: string[]): string;
    protected generateQueryFields(model: CodeGenModel, field: CodeGenField, classDeclarationBlock: JavaDeclarationBlock): void;
    protected generateModelField(field: CodeGenField, value: string, classDeclarationBlock: JavaDeclarationBlock): void;
    protected generateNonModelField(field: CodeGenField, value: string, classDeclarationBlock: JavaDeclarationBlock): void;
    protected generateIdentifierClassField(model: CodeGenModel, classDeclaration: JavaDeclarationBlock): void;
    protected generateStepBuilderInterfaces(model: CodeGenModel, isIdAsModelPrimaryKey?: boolean): JavaDeclarationBlock[];
    protected generateBuilderClass(model: CodeGenModel, classDeclaration: JavaDeclarationBlock, isIdAsModelPrimaryKey?: boolean): void;
    protected generateCopyOfBuilderClass(model: CodeGenModel, classDeclaration: JavaDeclarationBlock, isIdAsModelPrimaryKey?: boolean): void;
    protected generateModelIdentifierClass(model: CodeGenModel, classDeclaration: JavaDeclarationBlock): void;
    protected generateCopyOfBuilderMethod(model: CodeGenModel, classDeclaration: JavaDeclarationBlock): void;
    protected generateResolveIdentifier(model: CodeGenModel, declarationsBlock: JavaDeclarationBlock, isCompositeKey: boolean): void;
    protected getModelIdentifierClassName(model: CodeGenModel): string;
    protected getModelIdentifierClassFieldName(model: CodeGenModel): string;
    protected generateGetters(model: CodeGenModel, declarationsBlock: JavaDeclarationBlock): void;
    protected getFieldGetterName(field: CodeGenField): string;
    protected getStepFunctionName(field: CodeGenField): string;
    protected getStepFunctionArgumentName(field: CodeGenField): string;
    protected generateConstructor(model: CodeGenModel, declarationsBlock: JavaDeclarationBlock): void;
    protected getNativeType(field: CodeGenField, unwrapModelReference?: boolean): string;
    protected getListType(typeStr: string, field: CodeGenField): string;
    protected isModelReference(field: CodeGenField): boolean;
    protected isModelList(field: CodeGenField): boolean;
    protected generateEqualsMethod(model: CodeGenModel, declarationBlock: JavaDeclarationBlock): void;
    protected generateHashCodeMethod(model: CodeGenModel, declarationBlock: JavaDeclarationBlock): void;
    protected generateToStringMethod(model: CodeGenModel, declarationBlock: JavaDeclarationBlock): void;
    protected generateBuilderMethod(model: CodeGenModel, classDeclaration: JavaDeclarationBlock, isIdAsModelPrimaryKey?: boolean): void;
    private getStepInterfaceName;
    private getTypesUsedByModel;
    protected generateModelAnnotations(model: CodeGenModel): string[];
    protected generateAuthRules(authDirectives: AuthDirective[]): string;
    protected generateFieldAnnotations(field: CodeGenField): string[];
    protected generateModelFieldAnnotation(field: CodeGenField): string;
    protected generateConnectionAnnotation(field: CodeGenField): string;
    protected generateJustIdMethod(model: CodeGenModel, classDeclaration: JavaDeclarationBlock): void;
    protected getNonConnectedField(model: CodeGenModel): CodeGenField[];
    protected getWritableFields(model: CodeGenModel): CodeGenField[];
    protected getConnectedFields(model: CodeGenModel): CodeGenField[];
    protected generateRootPath(model: CodeGenModel, classDeclarationBlock: JavaDeclarationBlock): void;
    protected generateModelPathClasses(): string;
    protected generateModelPathClass(model: CodeGenModel): string;
    protected generateModelPathName(model: CodeGenModel): string;
    protected generateModelPathField(field: CodeGenField, classDeclarationBlock: JavaDeclarationBlock): void;
    protected generateModelPathPackageHeader(): string;
    protected generateModelPathConstructor(model: CodeGenModel, declarationsBlock: JavaDeclarationBlock): void;
}
//# sourceMappingURL=appsync-java-visitor.d.ts.map