import { access } from '@synnaxlabs/client';
import { z } from 'zod';
import { policy } from './aether';
import { Flux } from '../../flux';
import { List } from '../../list';
export declare const formSchema: z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    objects: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        type: z.ZodEnum<{
            label: "label";
            log: "log";
            builtin: "builtin";
            cluster: "cluster";
            channel: "channel";
            node: "node";
            group: "group";
            range: "range";
            framer: "framer";
            "range-alias": "range-alias";
            user: "user";
            workspace: "workspace";
            schematic: "schematic";
            lineplot: "lineplot";
            rack: "rack";
            device: "device";
            task: "task";
            policy: "policy";
            role: "role";
            table: "table";
            arc: "arc";
            schematic_symbol: "schematic_symbol";
            status: "status";
            view: "view";
        }>;
        key: z.ZodString;
    }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
        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;
    }, string>>]>>;
    actions: z.ZodArray<z.ZodEnum<{
        create: "create";
        delete: "delete";
        retrieve: "retrieve";
        update: "update";
    }>>;
}, z.core.$strip>;
export interface RetrieveQuery {
    key: access.policy.Key;
}
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, import('@synnaxlabs/client/dist/src/access/policy/payload').Policy>;
export interface ListParams extends List.PagerParams {
}
export declare const useList: Flux.UseList<ListParams, string, import('@synnaxlabs/client/dist/src/access/policy/payload').Policy>;
export type DeleteParams = access.policy.Key | access.policy.Key[];
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, z.ZodNever, false, policy.FluxSubStore>;
export interface RenameParams {
    key: access.policy.Key;
    name: string;
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, z.ZodNever, false, policy.FluxSubStore>;
export declare const useForm: Flux.UseForm<Partial<RetrieveQuery>, z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    name: z.ZodString;
    objects: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        type: z.ZodEnum<{
            label: "label";
            log: "log";
            builtin: "builtin";
            cluster: "cluster";
            channel: "channel";
            node: "node";
            group: "group";
            range: "range";
            framer: "framer";
            "range-alias": "range-alias";
            user: "user";
            workspace: "workspace";
            schematic: "schematic";
            lineplot: "lineplot";
            rack: "rack";
            device: "device";
            task: "task";
            policy: "policy";
            role: "role";
            table: "table";
            arc: "arc";
            schematic_symbol: "schematic_symbol";
            status: "status";
            view: "view";
        }>;
        key: z.ZodString;
    }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
        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;
    }, string>>]>>;
    actions: z.ZodArray<z.ZodEnum<{
        create: "create";
        delete: "delete";
        retrieve: "retrieve";
        update: "update";
    }>>;
}, z.core.$strip>, policy.FluxSubStore>;
//# sourceMappingURL=queries.d.ts.map