import { view } from '@synnaxlabs/client';
import { optional } from '@synnaxlabs/x';
import { Flux } from '../flux';
import { Ontology } from '../ontology';
export declare const FLUX_STORE_KEY = "views";
export declare const RESOURCE_NAME = "view";
export declare const PLURAL_RESOURCE_NAME = "views";
export interface FluxStore extends Flux.UnaryStore<view.Key, view.View> {
}
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 ListQuery extends view.RetrieveMultipleParams {
}
export declare const useList: Flux.UseList<ListQuery, string, view.View>;
export declare const useCreate: Flux.UseUpdate<view.New, view.New, import('zod').ZodNever, false, FluxSubStore>;
export type DeleteParams = view.Key | view.Key[];
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, import('zod').ZodNever, false, FluxSubStore>;
export interface FormQuery extends optional.Optional<view.RetrieveSingleParams, "key"> {
}
export declare const useForm: Flux.UseForm<FormQuery, import('zod').ZodObject<{
    name: import('zod').ZodString;
    type: import('zod').ZodString;
    query: import('zod').ZodRecord<import('zod').ZodUnion<readonly [import('zod').ZodString, import('zod').ZodNumber]>, import('zod').ZodUnknown>;
    key: import('zod').ZodOptional<import('zod').ZodUUID>;
}, import('zod/v4/core').$strip>, FluxSubStore>;
export interface RenameParams extends Pick<view.View, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, import('zod').ZodNever, false, FluxSubStore>;
export declare const useSetSynchronizer: (onSet: (view: view.View) => void) => void;
export declare const useDeleteSynchronizer: (onDelete: (key: view.Key) => void) => void;
//# sourceMappingURL=queries.d.ts.map