import { arc } from '@synnaxlabs/client';
import { default as z } from 'zod';
import { Flux } from '../flux';
import { List } from '../list';
import { Status } from '../status';
export interface FluxStore extends Flux.UnaryStore<arc.Key, arc.Arc> {
}
export declare const FLUX_STORE_KEY = "arcs";
export interface FluxSubStore extends Status.FluxSubStore {
    [FLUX_STORE_KEY]: FluxStore;
}
export declare const FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<FluxSubStore, arc.Key, arc.Arc>;
export interface FluxSubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
}
export interface RetrieveQuery {
    key: arc.Key;
    includeStatus?: boolean;
}
export interface ListQuery extends List.PagerParams {
    keys?: arc.Key[];
}
export declare const useList: Flux.UseList<ListQuery, string, arc.Arc>;
export declare const useDelete: Flux.UseUpdate<string | string[], string | string[], z.ZodNever>;
export declare const formSchema: z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    graph: z.ZodObject<{
        nodes: z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            type: z.ZodString;
            config: z.ZodUnion<[z.ZodRecord<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodSymbol]>, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<import('node_modules/@synnaxlabs/x/dist/src/record/record').Unknown, string>>]>;
            position: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
            }, z.core.$strip>;
        }, z.core.$strip>>;
        edges: z.ZodArray<z.ZodObject<{
            source: z.ZodObject<{
                param: z.ZodString;
                node: z.ZodString;
            }, z.core.$strip>;
            target: z.ZodObject<{
                param: z.ZodString;
                node: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    text: z.ZodObject<{
        raw: z.ZodString;
    }, z.core.$strip>;
    deploy: z.ZodBoolean;
    version: z.ZodString;
    name: z.ZodString;
}, z.core.$strip>;
export declare const ZERO_FORM_VALUES: z.infer<typeof formSchema>;
export declare const useForm: Flux.UseForm<Partial<RetrieveQuery>, z.ZodObject<{
    key: z.ZodOptional<z.ZodUUID>;
    graph: z.ZodObject<{
        nodes: z.ZodArray<z.ZodObject<{
            key: z.ZodString;
            type: z.ZodString;
            config: z.ZodUnion<[z.ZodRecord<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodSymbol]>, z.ZodUnknown>, z.ZodPipe<z.ZodString, z.ZodTransform<import('node_modules/@synnaxlabs/x/dist/src/record/record').Unknown, string>>]>;
            position: z.ZodObject<{
                x: z.ZodNumber;
                y: z.ZodNumber;
            }, z.core.$strip>;
        }, z.core.$strip>>;
        edges: z.ZodArray<z.ZodObject<{
            source: z.ZodObject<{
                param: z.ZodString;
                node: z.ZodString;
            }, z.core.$strip>;
            target: z.ZodObject<{
                param: z.ZodString;
                node: z.ZodString;
            }, z.core.$strip>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    text: z.ZodObject<{
        raw: z.ZodString;
    }, z.core.$strip>;
    deploy: z.ZodBoolean;
    version: z.ZodString;
    name: z.ZodString;
}, z.core.$strip>, FluxSubStore>;
export declare const useCreate: Flux.UseUpdate<arc.New, arc.New, z.ZodNever>;
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, arc.Arc>, useRetrieveObservable: Flux.UseRetrieveObservable<RetrieveQuery, arc.Arc>;
export declare const useToggleDeploy: Flux.UseUpdate<string, string, z.ZodNever>;
export interface RenameParams extends Pick<arc.Arc, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, z.ZodNever>;
//# sourceMappingURL=queries.d.ts.map