import { ontology, schematic, workspace } from '@synnaxlabs/client';
import { Flux } from '../flux';
import { Ontology } from '../ontology';
export declare const FLUX_STORE_KEY = "schematics";
export declare const FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<FluxSubStore, schematic.Key, schematic.Schematic>;
export interface FluxStore extends Flux.UnaryStore<schematic.Key, schematic.Schematic> {
}
interface FluxSubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
    [Ontology.RELATIONSHIPS_FLUX_STORE_KEY]: Ontology.RelationshipFluxStore;
    [Ontology.RESOURCES_FLUX_STORE_KEY]: Ontology.ResourceFluxStore;
}
export type RetrieveQuery = schematic.RetrieveSingleParams;
export declare const retrieveSingle: ({ store, client, query: { key }, }: Flux.RetrieveParams<RetrieveQuery, FluxSubStore>) => Promise<schematic.Schematic>;
export declare const useRetrieve: Flux.UseRetrieve<{
    key: string;
}, schematic.Schematic>, useRetrieveObservable: Flux.UseRetrieveObservable<{
    key: string;
}, schematic.Schematic>;
export type DeleteParams = schematic.Params;
export declare const useDelete: Flux.UseUpdate<schematic.Params, schematic.Params, import('zod').ZodNever>;
export interface CopyParams extends schematic.CopyArgs {
}
export declare const useCopy: Flux.UseUpdate<CopyParams, schematic.Schematic, import('zod').ZodNever>;
export interface UseCreateArgs extends schematic.New {
    workspace: workspace.Key;
}
export interface UseCreateResult extends schematic.Schematic {
    workspace: workspace.Key;
}
export declare const useCreate: Flux.UseUpdate<UseCreateArgs, UseCreateResult, import('zod').ZodNever>;
export interface SnapshotPair extends Pick<schematic.Schematic, "key" | "name"> {
}
export interface SnapshotParams {
    schematics: SnapshotPair | SnapshotPair[];
    parentID: ontology.ID;
}
export declare const useSnapshot: Flux.UseUpdate<SnapshotParams, SnapshotParams, import('zod').ZodNever>;
export interface RenameParams extends Pick<schematic.Schematic, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, import('zod').ZodNever>;
export {};
//# sourceMappingURL=queries.d.ts.map