import { ontology } from '@synnaxlabs/client';
import { Flux } from '../flux';
import { List } from '../list';
export interface RelationshipFluxStore extends Flux.UnaryStore<string, ontology.Relationship> {
}
export interface ResourceFluxStore extends Flux.UnaryStore<string, ontology.Resource> {
}
export declare const RELATIONSHIPS_FLUX_STORE_KEY = "relationships";
export declare const RESOURCES_FLUX_STORE_KEY = "resources";
interface SubStore extends Flux.Store {
}
export declare const RELATIONSHIP_FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<SubStore>;
export declare const RESOURCE_FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<SubStore>;
export declare const useResourceSetSynchronizer: (onSet: (resource: ontology.Resource) => void) => void;
export declare const useResourceDeleteSynchronizer: (onDelete: (id: ontology.ID) => void) => void;
export declare const useRelationshipSetSynchronizer: (onSet: (relationship: ontology.Relationship) => void) => void;
export declare const useRelationshipDeleteSynchronizer: (onDelete: (relationship: ontology.Relationship) => void) => void;
interface UseDependentQueryParams extends List.PagerParams {
    id?: ontology.ID;
}
interface SubStore extends Flux.Store {
    relationships: RelationshipFluxStore;
    resources: ResourceFluxStore;
}
export declare const createDependentsListHook: (direction: ontology.RelationshipDirection) => Flux.UseList<UseDependentQueryParams, string, ontology.Resource<import('node_modules/@synnaxlabs/x/dist/src/record/record').Unknown>>;
export declare const useChildren: Flux.UseList<UseDependentQueryParams, string, ontology.Resource<import('node_modules/@synnaxlabs/x/dist/src/record/record').Unknown>>;
export interface ListParams extends ontology.RetrieveRequest {
}
export declare const useResourceList: Flux.UseList<ListParams, string, ontology.Resource<import('node_modules/@synnaxlabs/x/dist/src/record/record').Unknown>>;
export interface RetrieveParentIDParams {
    id: ontology.ID;
    type?: ontology.ResourceType;
}
export declare const retrieveParentID: Flux.CreateRetrieveReturn<RetrieveParentIDParams, {
    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;
} | {
    type: "node" | "label" | "table" | "range" | "group" | "log" | "cluster" | "schematic" | "channel" | "workspace" | "user" | "task" | "device" | "rack" | "allow_all" | "builtin" | "framer" | "range-alias" | "lineplot" | "policy" | "schematic_symbol";
    key: string;
} | null>;
export {};
//# sourceMappingURL=queries.d.ts.map