import { StringValueNode, NameNode } from 'graphql'; export declare type Access = 'private' | 'public' | 'protected'; export declare type Kind = 'class' | 'interface' | 'enum'; export declare type MemberFlags = { transient?: boolean; final?: boolean; volatile?: boolean; static?: boolean; }; export declare type ClassMember = { value: string; name: string; access: Access; type: string; annotations: string[]; flags: MemberFlags; }; export declare type ClassMethod = { methodAnnotations: string[]; args: Partial[]; implementation: string; name: string; access: Access; returnType: string | null; returnTypeAnnotations: string[]; flags: MemberFlags; }; export declare class JavaDeclarationBlock { _name: string; _extendStr: string[]; _implementsStr: string[]; _kind: Kind; _access: Access; _final: boolean; _static: boolean; _block: any; _comment: any; _annotations: string[]; _members: ClassMember[]; _methods: ClassMethod[]; _nestedClasses: JavaDeclarationBlock[]; nestedClass(nstCls: JavaDeclarationBlock): JavaDeclarationBlock; access(access: Access): JavaDeclarationBlock; asKind(kind: Kind): JavaDeclarationBlock; final(): JavaDeclarationBlock; static(): JavaDeclarationBlock; annotate(annotations: string[]): JavaDeclarationBlock; withComment(comment: string | StringValueNode | null): JavaDeclarationBlock; withBlock(block: string): JavaDeclarationBlock; extends(extendStr: string[]): JavaDeclarationBlock; implements(implementsStr: string[]): JavaDeclarationBlock; withName(name: string | NameNode): JavaDeclarationBlock; private printMember; private printMethod; addClassMember(name: string, type: string, value: string, typeAnnotations?: string[], access?: Access, flags?: MemberFlags): JavaDeclarationBlock; addClassMethod(name: string, returnType: string | null, impl: string, args?: Partial[], returnTypeAnnotations?: string[], access?: Access, flags?: MemberFlags, methodAnnotations?: string[]): JavaDeclarationBlock; get string(): string; }