import type { DataTag, DefinedInitialDataOptions, DefinedUseQueryResult, QueryClient, QueryKey, UndefinedInitialDataOptions, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
import type { AxiosError, AxiosRequestConfig, AxiosResponse } from "axios";
import type { ListResponseWrapperRoleSuggestion, PagingListResponseWrapperRole, RetrieveRoleForSuggestionsParams, RoleModifyDto, SearchRolesParams, SimpleResponseWrapperDeleteResponse, SimpleResponseWrapperRole, Tsid } from "../../model";
/**
 * Find Role by given role id
 */
export declare const retrieveRoleById: (roleId: Tsid, options?: AxiosRequestConfig) => Promise<AxiosResponse<SimpleResponseWrapperRole>>;
export declare const getRetrieveRoleByIdQueryKey: (roleId: Tsid) => readonly [`/api/helixzypher/v1/roles/${string}`];
export declare const getRetrieveRoleByIdQueryOptions: <TData = Awaited<ReturnType<typeof retrieveRoleById>>, TError = AxiosError<SimpleResponseWrapperRole>>(roleId: Tsid, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}) => UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, TData> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export type RetrieveRoleByIdQueryResult = NonNullable<Awaited<ReturnType<typeof retrieveRoleById>>>;
export type RetrieveRoleByIdQueryError = AxiosError<SimpleResponseWrapperRole>;
export declare function useRetrieveRoleById<TData = Awaited<ReturnType<typeof retrieveRoleById>>, TError = AxiosError<SimpleResponseWrapperRole>>(roleId: Tsid, options: {
    query: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, Awaited<ReturnType<typeof retrieveRoleById>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useRetrieveRoleById<TData = Awaited<ReturnType<typeof retrieveRoleById>>, TError = AxiosError<SimpleResponseWrapperRole>>(roleId: Tsid, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, Awaited<ReturnType<typeof retrieveRoleById>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useRetrieveRoleById<TData = Awaited<ReturnType<typeof retrieveRoleById>>, TError = AxiosError<SimpleResponseWrapperRole>>(roleId: Tsid, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleById>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
/**
 * Update Role using given details
 */
export declare const updateRole: (roleId: Tsid, roleModifyDto: RoleModifyDto, options?: AxiosRequestConfig) => Promise<AxiosResponse<SimpleResponseWrapperRole>>;
export declare const getUpdateRoleMutationOptions: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateRole>>, TError, {
        roleId: Tsid;
        data: RoleModifyDto;
    }, TContext>;
    axios?: AxiosRequestConfig;
}) => UseMutationOptions<Awaited<ReturnType<typeof updateRole>>, TError, {
    roleId: Tsid;
    data: RoleModifyDto;
}, TContext>;
export type UpdateRoleMutationResult = NonNullable<Awaited<ReturnType<typeof updateRole>>>;
export type UpdateRoleMutationBody = RoleModifyDto;
export type UpdateRoleMutationError = AxiosError<SimpleResponseWrapperRole>;
export declare const useUpdateRole: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateRole>>, TError, {
        roleId: Tsid;
        data: RoleModifyDto;
    }, TContext>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof updateRole>>, TError, {
    roleId: Tsid;
    data: RoleModifyDto;
}, TContext>;
/**
 * Delete Role by given role id
 */
export declare const deleteRole: (roleId: Tsid, options?: AxiosRequestConfig) => Promise<AxiosResponse<SimpleResponseWrapperDeleteResponse>>;
export declare const getDeleteRoleMutationOptions: <TError = AxiosError<SimpleResponseWrapperDeleteResponse>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof deleteRole>>, TError, {
        roleId: Tsid;
    }, TContext>;
    axios?: AxiosRequestConfig;
}) => UseMutationOptions<Awaited<ReturnType<typeof deleteRole>>, TError, {
    roleId: Tsid;
}, TContext>;
export type DeleteRoleMutationResult = NonNullable<Awaited<ReturnType<typeof deleteRole>>>;
export type DeleteRoleMutationError = AxiosError<SimpleResponseWrapperDeleteResponse>;
export declare const useDeleteRole: <TError = AxiosError<SimpleResponseWrapperDeleteResponse>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof deleteRole>>, TError, {
        roleId: Tsid;
    }, TContext>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof deleteRole>>, TError, {
    roleId: Tsid;
}, TContext>;
/**
 * Update Role status using given details
 */
export declare const updateRoleStatus: (roleId: Tsid, status: "Active" | "Inactive", options?: AxiosRequestConfig) => Promise<AxiosResponse<SimpleResponseWrapperRole>>;
export declare const getUpdateRoleStatusMutationOptions: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateRoleStatus>>, TError, {
        roleId: Tsid;
        status: "Active" | "Inactive";
    }, TContext>;
    axios?: AxiosRequestConfig;
}) => UseMutationOptions<Awaited<ReturnType<typeof updateRoleStatus>>, TError, {
    roleId: Tsid;
    status: "Active" | "Inactive";
}, TContext>;
export type UpdateRoleStatusMutationResult = NonNullable<Awaited<ReturnType<typeof updateRoleStatus>>>;
export type UpdateRoleStatusMutationError = AxiosError<SimpleResponseWrapperRole>;
export declare const useUpdateRoleStatus: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof updateRoleStatus>>, TError, {
        roleId: Tsid;
        status: "Active" | "Inactive";
    }, TContext>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof updateRoleStatus>>, TError, {
    roleId: Tsid;
    status: "Active" | "Inactive";
}, TContext>;
/**
 * Search Roles with Pagination
 */
export declare const searchRoles: (params: SearchRolesParams, options?: AxiosRequestConfig) => Promise<AxiosResponse<PagingListResponseWrapperRole>>;
export declare const getSearchRolesQueryKey: (params: SearchRolesParams) => readonly ["/api/helixzypher/v1/roles", ...SearchRolesParams[]];
export declare const getSearchRolesQueryOptions: <TData = Awaited<ReturnType<typeof searchRoles>>, TError = AxiosError<PagingListResponseWrapperRole>>(params: SearchRolesParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof searchRoles>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}) => UseQueryOptions<Awaited<ReturnType<typeof searchRoles>>, TError, TData> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export type SearchRolesQueryResult = NonNullable<Awaited<ReturnType<typeof searchRoles>>>;
export type SearchRolesQueryError = AxiosError<PagingListResponseWrapperRole>;
export declare function useSearchRoles<TData = Awaited<ReturnType<typeof searchRoles>>, TError = AxiosError<PagingListResponseWrapperRole>>(params: SearchRolesParams, options: {
    query: Partial<UseQueryOptions<Awaited<ReturnType<typeof searchRoles>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof searchRoles>>, TError, Awaited<ReturnType<typeof searchRoles>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useSearchRoles<TData = Awaited<ReturnType<typeof searchRoles>>, TError = AxiosError<PagingListResponseWrapperRole>>(params: SearchRolesParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof searchRoles>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof searchRoles>>, TError, Awaited<ReturnType<typeof searchRoles>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useSearchRoles<TData = Awaited<ReturnType<typeof searchRoles>>, TError = AxiosError<PagingListResponseWrapperRole>>(params: SearchRolesParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof searchRoles>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
/**
 * Create new Role using given details
 */
export declare const createRole: (roleModifyDto: RoleModifyDto, options?: AxiosRequestConfig) => Promise<AxiosResponse<SimpleResponseWrapperRole>>;
export declare const getCreateRoleMutationOptions: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof createRole>>, TError, {
        data: RoleModifyDto;
    }, TContext>;
    axios?: AxiosRequestConfig;
}) => UseMutationOptions<Awaited<ReturnType<typeof createRole>>, TError, {
    data: RoleModifyDto;
}, TContext>;
export type CreateRoleMutationResult = NonNullable<Awaited<ReturnType<typeof createRole>>>;
export type CreateRoleMutationBody = RoleModifyDto;
export type CreateRoleMutationError = AxiosError<SimpleResponseWrapperRole>;
export declare const useCreateRole: <TError = AxiosError<SimpleResponseWrapperRole>, TContext = unknown>(options?: {
    mutation?: UseMutationOptions<Awaited<ReturnType<typeof createRole>>, TError, {
        data: RoleModifyDto;
    }, TContext>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient) => UseMutationResult<Awaited<ReturnType<typeof createRole>>, TError, {
    data: RoleModifyDto;
}, TContext>;
/**
 * Find Roles for suggestion boxes
 */
export declare const retrieveRoleForSuggestions: (params: RetrieveRoleForSuggestionsParams, options?: AxiosRequestConfig) => Promise<AxiosResponse<ListResponseWrapperRoleSuggestion>>;
export declare const getRetrieveRoleForSuggestionsQueryKey: (params: RetrieveRoleForSuggestionsParams) => readonly ["/api/helixzypher/v1/roles/suggestions", ...RetrieveRoleForSuggestionsParams[]];
export declare const getRetrieveRoleForSuggestionsQueryOptions: <TData = Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError = AxiosError<ListResponseWrapperRoleSuggestion>>(params: RetrieveRoleForSuggestionsParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}) => UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, TData> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export type RetrieveRoleForSuggestionsQueryResult = NonNullable<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>>;
export type RetrieveRoleForSuggestionsQueryError = AxiosError<ListResponseWrapperRoleSuggestion>;
export declare function useRetrieveRoleForSuggestions<TData = Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError = AxiosError<ListResponseWrapperRoleSuggestion>>(params: RetrieveRoleForSuggestionsParams, options: {
    query: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, TData>> & Pick<DefinedInitialDataOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, Awaited<ReturnType<typeof retrieveRoleForSuggestions>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): DefinedUseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useRetrieveRoleForSuggestions<TData = Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError = AxiosError<ListResponseWrapperRoleSuggestion>>(params: RetrieveRoleForSuggestionsParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, TData>> & Pick<UndefinedInitialDataOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, Awaited<ReturnType<typeof retrieveRoleForSuggestions>>>, "initialData">;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
export declare function useRetrieveRoleForSuggestions<TData = Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError = AxiosError<ListResponseWrapperRoleSuggestion>>(params: RetrieveRoleForSuggestionsParams, options?: {
    query?: Partial<UseQueryOptions<Awaited<ReturnType<typeof retrieveRoleForSuggestions>>, TError, TData>>;
    axios?: AxiosRequestConfig;
}, queryClient?: QueryClient): UseQueryResult<TData, TError> & {
    queryKey: DataTag<QueryKey, TData, TError>;
};
