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 FluxSubStore extends Ontology.FluxSubStore {
    [FLUX_STORE_KEY]: FluxStore;
}
export declare const STORE_CONFIG: Flux.UnaryStoreConfig<FluxSubStore, schematic.symbol.Key, schematic.symbol.Symbol>;
export interface RetrieveQuery {
    key: string;
}
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, schematic.symbol.Symbol>, useRetrieveEffect: Flux.UseRetrieveEffect<RetrieveQuery, schematic.symbol.Symbol>;
export interface ListQuery {
    keys?: string[];
    parent?: ontology.ID;
    searchTerm?: string;
    offset?: number;
    limit?: number;
}
export declare const useList: Flux.UseList<ListQuery, string, schematic.symbol.Symbol>;
export interface FormQuery {
    key?: string;
}
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<{
            status: "status";
            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";
            arc: "arc";
            schematic_symbol: "schematic_symbol";
        }>;
        key: import('zod').ZodString;
    }, import('zod/v4/core').$strip>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<{
        type: "status" | "label" | "log" | "allow_all" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "framer" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy" | "table" | "arc" | "schematic_symbol";
        key: string;
    }, string>>]>;
}, import('zod/v4/core').$strip>;
export declare const useForm: Flux.UseForm<FormQuery, 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<{
            status: "status";
            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";
            arc: "arc";
            schematic_symbol: "schematic_symbol";
        }>;
        key: import('zod').ZodString;
    }, import('zod/v4/core').$strip>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<{
        type: "status" | "label" | "log" | "allow_all" | "builtin" | "cluster" | "channel" | "node" | "group" | "range" | "framer" | "range-alias" | "user" | "workspace" | "schematic" | "lineplot" | "rack" | "device" | "task" | "policy" | "table" | "arc" | "schematic_symbol";
        key: string;
    }, string>>]>;
}, import('zod/v4/core').$strip>, FluxSubStore>;
export interface RenameParams extends Pick<schematic.symbol.Symbol, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, import('zod').ZodNever>;
export type DeleteParams = schematic.symbol.Key | schematic.symbol.Key[];
export declare const useDelete: Flux.UseUpdate<DeleteParams, DeleteParams, import('zod').ZodNever>;
export declare const useRetrieveGroup: Flux.UseRetrieve<{}, group.Group>;
//# sourceMappingURL=queries.d.ts.map