export interface MutationVariablesWrapper { variables: T; } export type TriggerMutationFunction = (args: MutationVariablesWrapper) => void; export type UseCustomMutationReturnType = [TriggerMutationFunction | null, object | null]; export type UseCustomMutationFunction = (mutation: string, options?: object) => UseCustomMutationReturnType; export interface UseCustomMutationArguments { mutation: string; options?: object; } export interface MutationResultObject { called: boolean; data?: object; error?: object; loading: boolean; } export interface MutationHookResultType { triggerFunction: TriggerMutationFunction | null; result: MutationResultObject | null; } export type SetterFunctionCallbackType = (previousObject: MutationHookResultType, dataFromEvent: K) => MutationHookResultType;