## API Report File for "graphql-dynamodb-transformer"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { default as default_2 } from 'cloudform-types/types/appSync/graphQlApi';
import { default as default_3 } from 'cloudform-types/types/appSync/graphQlSchema';
import { default as default_4 } from 'cloudform-types/types/dynamoDb/table';
import { default as default_5 } from 'cloudform-types/types/iam/role';
import { default as default_6 } from 'cloudform-types/types/appSync/dataSource';
import { default as default_7 } from 'cloudform-types/types/appSync/resolver';
import { DeletionPolicy } from 'cloudform-types';
import { DirectiveNode } from 'graphql';
import { DocumentNode } from 'graphql';
import { EnumTypeDefinitionNode } from 'graphql';
import { FieldDefinitionNode } from 'graphql';
import { InputObjectTypeDefinitionNode } from 'graphql';
import { InputValueDefinitionNode } from 'graphql';
import { InterfaceTypeDefinitionNode } from 'graphql';
import { NumberParameter } from 'cloudform-types';
import { ObjectTypeDefinitionNode } from 'graphql';
import { ObjectTypeExtensionNode } from 'graphql';
import Output from 'cloudform-types/types/output';
import { StringParameter } from 'cloudform-types';
import { SyncConfig } from 'graphql-transformer-core';
import Template from 'cloudform-types/types/template';
import { Transformer as Transformer_2 } from 'graphql-transformer-core';
import { TransformerContext } from 'graphql-transformer-core';

// @public (undocumented)
export const CONDITIONS_MINIMUM_VERSION = 5;

// @public (undocumented)
export const directiveDefinition: DocumentNode;

// @public (undocumented)
export class DynamoDBModelTransformer extends Transformer_2 {
    constructor(opts?: DynamoDBModelTransformerOptions);
    // (undocumented)
    after: (ctx: TransformerContext) => void;
    // (undocumented)
    before: (ctx: TransformerContext) => void;
    // (undocumented)
    object: (def: ObjectTypeDefinitionNode, directive: DirectiveNode, ctx: TransformerContext) => void;
    // (undocumented)
    opts: DynamoDBModelTransformerOptions;
    // Warning: (ae-forgotten-export) The symbol "ResourceFactory" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    resources: ResourceFactory;
}

// @public (undocumented)
export interface DynamoDBModelTransformerOptions {
    // (undocumented)
    EnableDeletionProtection?: boolean;
    // (undocumented)
    SyncConfig?: SyncConfig;
}

// @public (undocumented)
export function getCreatedAtFieldName(directive: DirectiveNode): string | undefined;

// @public (undocumented)
export function getFieldsOptionalNonNullableField(fields: InputValueDefinitionNode[], obj: ObjectTypeDefinitionNode): string[];

// @public (undocumented)
export function getNonModelObjectArray(obj: ObjectTypeDefinitionNode, ctx: TransformerContext, pMap: Map<string, ObjectTypeDefinitionNode>): ObjectTypeDefinitionNode[];

// @public (undocumented)
export function getTimestampFieldName(directive: DirectiveNode, fieldName: string, defaultFiledValue: string): string | undefined;

// @public (undocumented)
export function getUpdatedAtFieldName(directive: DirectiveNode): string | undefined;

// @public (undocumented)
export function makeAttributeTypeEnum(): EnumTypeDefinitionNode;

// @public (undocumented)
export function makeCreateInputObject(obj: ObjectTypeDefinitionNode, directive: DirectiveNode, nonModelTypes: ObjectTypeDefinitionNode[], ctx: TransformerContext, isSync?: boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeDeleteInputObject(obj: ObjectTypeDefinitionNode, isSync?: boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeEnumFilterInputObjects(obj: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, ctx: TransformerContext, supportsConditions: Boolean): InputObjectTypeDefinitionNode[];

// @public (undocumented)
export function makeModelConnectionField(fieldName: string, returnTypeName: string, sortKeyInfo?: SortKeyFieldInfo, directives?: DirectiveNode[]): FieldDefinitionNode;

// @public (undocumented)
export function makeModelConnectionType(typeName: string, isSync?: Boolean): ObjectTypeExtensionNode;

// @public (undocumented)
export function makeModelScalarFilterInputObject(type: string, supportsConditions: Boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeModelSortDirectionEnumObject(): EnumTypeDefinitionNode;

// @public (undocumented)
export function makeModelXConditionInputObject(obj: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, ctx: TransformerContext, supportsConditions: Boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeModelXFilterInputObject(obj: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode, ctx: TransformerContext, supportsConditions: Boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeNonModelInputObject(obj: ObjectTypeDefinitionNode, nonModelTypes: ObjectTypeDefinitionNode[], ctx: TransformerContext): InputObjectTypeDefinitionNode;

// @public (undocumented)
export function makeScalarFilterInputs(supportsConditions: Boolean): InputObjectTypeDefinitionNode[];

// @public (undocumented)
export function makeSubscriptionField(fieldName: string, returnTypeName: string, mutations: string[]): FieldDefinitionNode;

// @public (undocumented)
export function makeUpdateInputObject(obj: ObjectTypeDefinitionNode, nonModelTypes: ObjectTypeDefinitionNode[], ctx: TransformerContext, isSync?: boolean): InputObjectTypeDefinitionNode;

// @public (undocumented)
export interface ModelDirectiveArgs {
    // (undocumented)
    mutations?: MutationNameMap;
    // (undocumented)
    queries?: QueryNameMap;
    // (undocumented)
    subscriptions?: SubscriptionNameMap;
    // (undocumented)
    timestamps?: ModelDirectiveTimestampConfiguration;
}

// @public (undocumented)
export interface ModelDirectiveTimestampConfiguration {
    // (undocumented)
    createdAt?: string;
    // (undocumented)
    updatedAt?: string;
}

// @public (undocumented)
export type ModelSubscriptionLevel = 'off' | 'public' | 'on';

// @public (undocumented)
export interface MutationNameMap {
    // (undocumented)
    create?: string;
    // (undocumented)
    delete?: string;
    // (undocumented)
    update?: string;
}

// @public (undocumented)
export interface QueryNameMap {
    // (undocumented)
    get?: string;
    // (undocumented)
    list?: string;
    // (undocumented)
    query?: string;
}

// @public (undocumented)
export interface SortKeyFieldInfo {
    // (undocumented)
    fieldName: string;
    // (undocumented)
    keyName?: string;
    // (undocumented)
    model?: string;
    // (undocumented)
    typeName: SortKeyFieldInfoTypeName;
}

// @public (undocumented)
export type SortKeyFieldInfoTypeName = 'Composite' | string;

// @public (undocumented)
export interface SubscriptionNameMap {
    // (undocumented)
    level?: ModelSubscriptionLevel;
    // (undocumented)
    onCreate?: string[];
    // (undocumented)
    onDelete?: string[];
    // (undocumented)
    onUpdate?: string[];
}

// (No @packageDocumentation comment for this package)

```
