import { group, ontology, schematic } from '@synnaxlabs/client';
import { Flux } from '../../flux';
import { Ontology } from '../../ontology';
export declare const FLUX_STORE_KEY = "schematicSymbols";
export interface FluxStore extends Flux.UnaryStore<schematic.symbol.Key, schematic.symbol.Symbol> {
}
export interface SubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
    [Ontology.RELATIONSHIPS_FLUX_STORE_KEY]: Ontology.RelationshipFluxStore;
}
export declare const STORE_CONFIG: Flux.UnaryStoreConfig<SubStore, schematic.symbol.Key, schematic.symbol.Symbol>;
export interface RetrieveParams {
    key: string;
}
export declare const retrieve: Flux.CreateRetrieveReturn<RetrieveParams, schematic.symbol.Symbol>;
export interface ListParams {
    keys?: string[];
    parent?: ontology.ID;
    searchTerm?: string;
    offset?: number;
    limit?: number;
}
export declare const useList: Flux.UseList<ListParams, string, schematic.symbol.Symbol>;
export interface UseFormParams {
    key?: string;
    parent?: ontology.ID;
}
export declare const formSchema: import('zod').ZodObject<{
    key: import('zod').ZodOptional<import('zod').ZodUUID>;
    version: import('zod').ZodDefault<import('zod').ZodOptional<import('zod').ZodLiteral<1>>>;
    name: import('zod').ZodString;
    data: import('zod').ZodObject<{
        svg: import('zod').ZodString;
        states: import('zod').ZodArray<import('zod').ZodObject<{
            key: import('zod').ZodString;
            name: import('zod').ZodString;
            regions: import('zod').ZodArray<import('zod').ZodObject<{
                key: import('zod').ZodString;
                name: import('zod').ZodString;
                selectors: import('zod').ZodDefault<import('zod').ZodArray<import('zod').ZodString>>;
                strokeColor: import('zod').ZodOptional<import('zod').ZodString>;
                fillColor: import('zod').ZodOptional<import('zod').ZodString>;
            }, import('zod/v4/core').$strip>>;
        }, import('zod/v4/core').$strip>>;
        variant: import('zod').ZodString;
        handles: import('zod').ZodArray<import('zod').ZodObject<{
            key: import('zod').ZodString;
            position: import('zod').ZodObject<{
                x: import('zod').ZodNumber;
                y: import('zod').ZodNumber;
            }, import('zod/v4/core').$strip>;
            orientation: import('zod').ZodEnum<{
                top: "top";
                right: "right";
                bottom: "bottom";
                left: "left";
            }>;
        }, import('zod/v4/core').$strip>>;
        scale: import('zod').ZodDefault<import('zod').ZodNumber>;
        scaleStroke: import('zod').ZodDefault<import('zod').ZodBoolean>;
        previewViewport: import('zod').ZodDefault<import('zod').ZodObject<{
            zoom: import('zod').ZodDefault<import('zod').ZodNumber>;
            position: import('zod').ZodObject<{
                x: import('zod').ZodNumber;
                y: import('zod').ZodNumber;
            }, import('zod/v4/core').$strip>;
        }, import('zod/v4/core').$strip>>;
    }, import('zod/v4/core').$strip>;
    parent: import('zod').ZodUnion<[import('zod').ZodObject<{
        type: import('zod').ZodEnum<{
            label: "label";
            log: "log";
            allow_all: "allow_all";
            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";
            table: "table";
            schematic_symbol: "schematic_symbol";
        }>;
        key: import('zod').ZodString;
    }, import('zod/v4/core').$strip>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<{
        type: "label" | "log" | "allow_all" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "framer" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy" | "table" | "schematic_symbol";
        key: string;
    }, string>>]>;
}, import('zod/v4/core').$strip>;
export declare const useForm: Flux.UseForm<UseFormParams, import('zod').ZodObject<{
    key: import('zod').ZodOptional<import('zod').ZodUUID>;
    version: import('zod').ZodDefault<import('zod').ZodOptional<import('zod').ZodLiteral<1>>>;
    name: import('zod').ZodString;
    data: import('zod').ZodObject<{
        svg: import('zod').ZodString;
        states: import('zod').ZodArray<import('zod').ZodObject<{
            key: import('zod').ZodString;
            name: import('zod').ZodString;
            regions: import('zod').ZodArray<import('zod').ZodObject<{
                key: import('zod').ZodString;
                name: import('zod').ZodString;
                selectors: import('zod').ZodDefault<import('zod').ZodArray<import('zod').ZodString>>;
                strokeColor: import('zod').ZodOptional<import('zod').ZodString>;
                fillColor: import('zod').ZodOptional<import('zod').ZodString>;
            }, import('zod/v4/core').$strip>>;
        }, import('zod/v4/core').$strip>>;
        variant: import('zod').ZodString;
        handles: import('zod').ZodArray<import('zod').ZodObject<{
            key: import('zod').ZodString;
            position: import('zod').ZodObject<{
                x: import('zod').ZodNumber;
                y: import('zod').ZodNumber;
            }, import('zod/v4/core').$strip>;
            orientation: import('zod').ZodEnum<{
                top: "top";
                right: "right";
                bottom: "bottom";
                left: "left";
            }>;
        }, import('zod/v4/core').$strip>>;
        scale: import('zod').ZodDefault<import('zod').ZodNumber>;
        scaleStroke: import('zod').ZodDefault<import('zod').ZodBoolean>;
        previewViewport: import('zod').ZodDefault<import('zod').ZodObject<{
            zoom: import('zod').ZodDefault<import('zod').ZodNumber>;
            position: import('zod').ZodObject<{
                x: import('zod').ZodNumber;
                y: import('zod').ZodNumber;
            }, import('zod/v4/core').$strip>;
        }, import('zod/v4/core').$strip>>;
    }, import('zod/v4/core').$strip>;
    parent: import('zod').ZodUnion<[import('zod').ZodObject<{
        type: import('zod').ZodEnum<{
            label: "label";
            log: "log";
            allow_all: "allow_all";
            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";
            table: "table";
            schematic_symbol: "schematic_symbol";
        }>;
        key: import('zod').ZodString;
    }, import('zod/v4/core').$strip>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<{
        type: "label" | "log" | "allow_all" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "framer" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy" | "table" | "schematic_symbol";
        key: string;
    }, string>>]>;
}, import('zod/v4/core').$strip>>;
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 declare const retrieveGroup: Flux.CreateRetrieveReturn<{}, group.Payload>;
//# sourceMappingURL=queries.d.ts.map