import { group, ontology } from '@synnaxlabs/client';
import { Flux } from '../flux';
import { Ontology } from '../ontology';
export declare const FLUX_STORE_KEY = "groups";
export declare const RESOURCE_NAME = "Group";
export declare const PLURAL_RESOURCE_NAME = "Groups";
export interface FluxStore extends Flux.UnaryStore<group.Key, group.Group> {
}
export interface FluxSubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
    [Ontology.RELATIONSHIPS_FLUX_STORE_KEY]: Ontology.RelationshipFluxStore;
    [Ontology.RESOURCES_FLUX_STORE_KEY]: Ontology.ResourceFluxStore;
}
export declare const FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<FluxSubStore>;
export interface RetrieveQuery {
    key: group.Key;
}
export declare const retrieveSingle: ({ query: { key }, client, store, }: Flux.RetrieveParams<RetrieveQuery, FluxSubStore>) => Promise<group.Group>;
export interface CreateParams extends group.CreateArgs {
}
export declare const useCreate: Flux.UseUpdate<CreateParams, CreateParams, import('zod').ZodNever>;
export interface ListQuery {
    parent?: ontology.ID;
    searchTerm?: string;
    offset?: number;
    limit?: number;
}
export declare const useList: Flux.UseList<ListQuery, string, group.Group>;
export interface DeleteParams {
    key: string;
}
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, import('zod').ZodNever>;
export interface RenameParams extends Pick<group.Group, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, import('zod').ZodNever>;
//# sourceMappingURL=queries.d.ts.map