import { group, ontology, Synnax } from '@synnaxlabs/client';
import { Flux } from '../flux';
import { Ontology } from '../ontology';
export declare const FLUX_STORE_KEY = "groups";
export interface FluxStore extends Flux.UnaryStore<group.Key, group.Payload> {
}
interface SubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
    [Ontology.RELATIONSHIPS_FLUX_STORE_KEY]: Ontology.RelationshipFluxStore;
}
export declare const FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<SubStore>;
export declare const singleRetrieve: (key: group.Key, client: Synnax, subStore: SubStore) => Promise<group.Payload>;
export interface CreateParams {
    key?: group.Key;
}
export interface CreateValue extends group.Payload {
    parent: ontology.ID;
}
export declare const create: Flux.CreateUpdateReturn<CreateParams, CreateValue>;
export interface ListParams {
    parent?: ontology.ID;
    searchTerm?: string;
    offset?: number;
    limit?: number;
}
export declare const useList: Flux.UseList<ListParams, string, group.Payload>;
export interface RenameParams {
    key: string;
}
export declare const useRename: (args: Flux.UseDirectUpdateArgs<RenameParams, string>) => Flux.UseDirectUpdateReturn<string>;
export interface DeleteParams {
    key: string;
}
export declare const useDelete: (args: Flux.UseDirectUpdateArgs<DeleteParams, void>) => Flux.UseDirectUpdateReturn<void>;
export {};
//# sourceMappingURL=queries.d.ts.map