import { ReactNode } from 'react'; import { UseMutationOptions, UseMutationResult } from 'react-query'; import { ToastContextState } from './ToastProvider'; export type MutationConfig = { mutation: T; name: string; }; declare type GetResults = T extends MutationConfig> ? MutationConfig> : T extends MinimalMutationResult ? MutationConfig> : MutationConfig>; declare type GetDescriptionBuilder = T extends MutationConfig> ? DescriptionBuilder : T extends MutationConfig> ? DescriptionBuilder : T extends MinimalMutationResult ? DescriptionBuilder : never; /** * MutationResults reducer recursively maps type param to results */ declare type MutationsResults = T extends [] ? [] : T extends [infer Head, ...infer Tail] ? [GetResults, ...MutationsResults] : T extends [infer Head] ? [GetResults] : unknown[] extends T ? T : never; declare enum DescriptionBuilderStatus { Success = "success", Error = "error", Idle = "idle" } type DescriptionBuilder = { error?: Error; data?: Data; status: DescriptionBuilderStatus; name: string; }; declare type DescriptionBuilders = T extends [] ? [] : T extends [infer Head, ...infer Tail] ? [GetDescriptionBuilder, ...DescriptionBuilders] : T extends [infer Head] ? [GetDescriptionBuilder] : T extends UseMutationOptions[] ? DescriptionBuilder[] : DescriptionBuilder[]; type Props = { mainMutation: MutationConfig; dependantMutations?: readonly [...MutationsResults] | MutationConfig>[]; messageDescriptionBuilder: (mutations: T extends [] ? [GetDescriptionBuilder] : [GetDescriptionBuilder, ...DescriptionBuilders]) => ReactNode; toastProps?: Pick; } & ({ onMainMutationSuccess?: () => void; onAllMutationsSuccess?: never; } | { onAllMutationsSuccess?: () => void; onMainMutationSuccess?: never; }); export type MinimalMutationResult = Pick, 'isError' | 'isIdle' | 'isSuccess' | 'isLoading' | 'error' | 'data'>; export declare const useMutationsHandler: , T extends any[] | []>({ mainMutation, dependantMutations, messageDescriptionBuilder, toastProps, ...rest }: Props) => void; export {}; //# sourceMappingURL=useMutationsHandler.d.ts.map