import { FieldConfigMetadata } from '@aws-amplify/codegen-ui'; import { AwaitExpression, CallExpression, ObjectLiteralElementLike, Statement } from 'typescript'; import { ImportCollection } from '../imports'; import { DataApiKind, DataStoreRenderConfig, GraphqlRenderConfig, NoApiRenderConfig } from '../react-render-config'; export declare enum ActionType { CREATE = "create", UPDATE = "update", DELETE = "delete", LIST = "list", GET = "get", GET_BY_RELATIONSHIP = "getByRelationship" } export declare const isGraphqlConfig: (apiConfiguration?: GraphqlRenderConfig | DataStoreRenderConfig | NoApiRenderConfig | undefined) => apiConfiguration is GraphqlRenderConfig; export declare const getGraphqlQueryForModel: (action: ActionType, model: string, byFieldName?: string) => string; export declare const isGraphqlQueryAction: (action: ActionType) => boolean; /** * Returns a GraphQL call expression and adds to importCollection. * * @example * ``` * API.graphql({ * query: createTodo, * variables: { * input: { * inputs * }, * }, * }); * ``` */ export declare const getGraphqlCallExpression: (action: ActionType, model: string, importCollection: ImportCollection, variables?: ObjectLiteralElementLike[] | { inputs?: ObjectLiteralElementLike[] | undefined; filters?: ObjectLiteralElementLike[] | undefined; } | undefined, byFieldName?: string | undefined, renderConfigDependencies?: { [key: string]: string; } | undefined) => CallExpression; export declare const mapFieldArraysToPropertyAssignments: (joinTableFields: string[], modelFields: string[], modelRecord: string) => import("typescript").PropertyAssignment[]; export declare const getGraphQLJoinTableCreateExpression: (relatedJoinTableName: string, thisModelRecord: string, thisModelPrimaryKeys: string[], joinTableThisModelFields: string[], relatedModelRecord: string, relatedModelPrimaryKeys: string[], joinTableRelatedModelFields: string[], importCollection: ImportCollection, renderConfigDependencies?: { [key: string]: string; } | undefined) => CallExpression; export declare const getFetchRelatedRecords: (relatedModelName: string) => string; export declare const getFetchRelatedRecordsCallbacks: (fieldConfigs: Record, importCollection: ImportCollection, dataApi?: DataApiKind, renderConfigDependencies?: { [key: string]: string; } | undefined) => Statement[]; export declare function wrapInParenthesizedExpression(callExpression: CallExpression, accessors: string[]): AwaitExpression;