import { workspace } from '@synnaxlabs/client';
import { default as z } from 'zod';
import { policy } from '../access/policy/aether';
import { role } from '../access/role/aether';
import { Flux } from '../flux';
import { Ontology } from '../ontology';
export declare const FLUX_STORE_KEY = "workspaces";
export interface FluxStore extends Flux.UnaryStore<workspace.Key, workspace.Workspace> {
}
interface FluxSubStore extends Flux.Store, role.FluxSubStore, policy.FluxSubStore {
    [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: workspace.Key;
}
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, workspace.Workspace>;
export interface ListParams {
    offset?: number;
    limit?: number;
}
export declare const useList: Flux.UseList<ListParams, string, workspace.Workspace>;
export type DeleteParams = workspace.Key | workspace.Key[];
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, z.ZodNever, false, FluxSubStore>;
export interface RenameParams {
    key: workspace.Key;
    name: string;
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, z.ZodNever, false, FluxSubStore>;
export interface RetrieveGroupQuery {
}
export declare const useRetrieveGroupID: Flux.UseRetrieve<RetrieveGroupQuery, {
    type: "label" | "log" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "framer" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy" | "role" | "table" | "arc" | "schematic_symbol" | "status" | "view";
    key: string;
} | {
    type: "node" | "view" | "label" | "table" | "range" | "group" | "log" | "status" | "role" | "cluster" | "schematic" | "channel" | "workspace" | "user" | "policy" | "task" | "device" | "rack" | "arc" | "builtin" | "framer" | "range-alias" | "lineplot" | "schematic_symbol";
    key: string;
} | undefined>;
export declare const formSchema: z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    layout: z.ZodUnion<[z.ZodRecord<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x/dist/src/record/record').Unknown, string>>]>;
}, z.core.$strip>;
export declare const useForm: Flux.UseForm<Partial<RetrieveQuery>, z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    layout: z.ZodUnion<[z.ZodRecord<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x/dist/src/record/record').Unknown, string>>]>;
}, z.core.$strip>, FluxSubStore>;
export interface SaveLayoutParams extends workspace.SetLayoutArgs {
}
export declare const useSaveLayout: Flux.UseUpdate<SaveLayoutParams, SaveLayoutParams, z.ZodNever, false, FluxSubStore>;
export {};
//# sourceMappingURL=queries.d.ts.map