import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
import { AutumnClientError } from '../client/AutumnClientError.mjs';

type HookParams<T extends object, TData = unknown, TError = AutumnClientError> = T & {
    queryOptions?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">;
};
type HookResult<TData, TError = AutumnClientError> = Omit<UseQueryResult<TData, TError>, "data"> & {
    data: TData | undefined;
};
type HookResultWithMethods<TData, TMethods extends object, TError = AutumnClientError> = HookResult<TData, TError> & TMethods;

export type { HookParams, HookResult, HookResultWithMethods };
