import React from 'react';
import { UseAsyncReturn } from 'react-async-hook';
import { IGroup } from '@shared/interfaces/model';
import { Selection, SelectionMode } from '@fluentui/react';
import { ItemsOrKeys } from '@admin/helpers/selection';
export interface IGroupsContext {
    get: UseAsyncReturn<IGroup, [id: number]>;
    list: UseAsyncReturn<IGroup[], []>;
    create: UseAsyncReturn<any, [group: Partial<IGroup>]>;
    deleteOne: UseAsyncReturn<any, [id: number]>;
    deleteMany: UseAsyncReturn<any, [ids: number[]]>;
    update: UseAsyncReturn<any, [group: Partial<IGroup>]>;
    selection: Selection<IGroup>;
    selectedGroups: IGroup[];
    groups: IGroup[];
}
export interface IGroupsContextProviderProps {
    defaultSelectedGroups?: ItemsOrKeys<IGroup>;
    selectionMode?: SelectionMode;
}
declare const GroupsContextProvider: React.FC<IGroupsContextProviderProps>;
declare const useGroups: () => IGroupsContext;
export { GroupsContextProvider, useGroups };
