import { DocumentNode, EnumTypeDefinitionNode, EnumTypeExtensionNode, FieldDefinitionNode, InputObjectTypeDefinitionNode, InputObjectTypeExtensionNode, InterfaceTypeExtensionNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeDefinitionNode, SchemaDefinitionNode, TypeDefinitionNode, TypeSystemDefinitionNode, UnionTypeDefinitionNode, UnionTypeExtensionNode } from 'graphql';
import { TransformerContextOutputProvider } from '@aws-amplify/graphql-transformer-interfaces';
export declare function blankObject(name: string): ObjectTypeDefinitionNode;
export declare function objectExtension(name: string, fields?: FieldDefinitionNode[]): ObjectTypeExtensionNode;
export declare class TransformerOutput implements TransformerContextOutputProvider {
    nodeMap: {
        [name: string]: TypeSystemDefinitionNode;
    };
    constructor(inputDocument: DocumentNode);
    getTypeDefinitionsOfKind(kind: string): TypeDefinitionNode[];
    putSchema(obj: SchemaDefinitionNode): void;
    getSchema(): SchemaDefinitionNode;
    getQueryTypeName(): string | undefined;
    getQuery(): ObjectTypeDefinitionNode | undefined;
    addDefaultQuery(): void;
    ensureQuery(): void;
    getMutationTypeName(): string | undefined;
    getMutation(): ObjectTypeDefinitionNode | undefined;
    addDefaultMutation(): void;
    ensureMutation(): void;
    getSubscriptionTypeName(): string | undefined;
    getSubscription(): ObjectTypeDefinitionNode | undefined;
    addDefaultSubscription(): void;
    ensureSubscription(): void;
    addType(obj: TypeDefinitionNode): void;
    putType(obj: TypeDefinitionNode): void;
    getType(name: string): TypeSystemDefinitionNode | undefined;
    hasType(name: string): boolean;
    addOperationType(operation: OperationTypeDefinitionNode): void;
    addObject(obj: ObjectTypeDefinitionNode): void;
    updateObject(obj: ObjectTypeDefinitionNode): void;
    getObject(name: string): ObjectTypeDefinitionNode | undefined;
    addUnion(obj: UnionTypeDefinitionNode): void;
    addQueryFields(fields: FieldDefinitionNode[]): void;
    addMutationFields(fields: FieldDefinitionNode[]): void;
    addSubscriptionFields(fields: FieldDefinitionNode[]): void;
    addObjectExtension(obj: ObjectTypeExtensionNode): void;
    addInputExtension(obj: InputObjectTypeExtensionNode): void;
    addInterfaceExtension(obj: InterfaceTypeExtensionNode): void;
    addUnionExtension(obj: UnionTypeExtensionNode): void;
    addEnumExtension(obj: EnumTypeExtensionNode): void;
    addInput(inp: InputObjectTypeDefinitionNode): void;
    updateInput(obj: InputObjectTypeDefinitionNode): void;
    getInput(name: string): InputObjectTypeDefinitionNode | undefined;
    addEnum(en: EnumTypeDefinitionNode): void;
    buildSchema(): string;
    private static makeOperationType;
    private static makeSchema;
    private isAmplifyInput;
}
//# sourceMappingURL=output.d.ts.map