import { device } from '@synnaxlabs/client';
import { record } from '@synnaxlabs/x';
import { Flux } from '../../flux';
import { Rack } from '../rack';
import { Task } from '../task';
import { Ontology } from '../../ontology';
export declare const FLUX_STORE_KEY = "devices";
type ChangeVariant = "payload" | "status";
export interface FluxStore extends Flux.UnaryStore<string, device.Device, ChangeVariant> {
}
export interface FluxSubStore extends Flux.Store {
    [FLUX_STORE_KEY]: FluxStore;
    [Task.FLUX_STORE_KEY]: Task.FluxStore;
    [Rack.FLUX_STORE_KEY]: Rack.FluxStore;
    [Ontology.RELATIONSHIPS_FLUX_STORE_KEY]: Ontology.RelationshipFluxStore;
    [Ontology.RESOURCES_FLUX_STORE_KEY]: Ontology.ResourceFluxStore;
}
export declare const FLUX_STORE_CONFIG: Flux.UnaryStoreConfig<FluxSubStore>;
export declare const useSetSynchronizer: (onSet: (device: device.Device) => void) => void;
export interface RetrieveQuery extends device.RetrieveSingleParams {
}
export declare const createRetrieve: <Properties extends record.Unknown = record.Unknown, Make extends string = string, Model extends string = string>() => Flux.CreateRetrieveReturn<RetrieveQuery, device.Device<Properties, Make, Model>>;
export declare const useRetrieve: Flux.UseRetrieve<RetrieveQuery, device.Device<record.Unknown, string, string>>, useStatefulRetrieve: Flux.UseRetrieveStateful<RetrieveQuery, device.Device<record.Unknown, string, string>>, useRetrieveEffect: Flux.UseRetrieveEffect<RetrieveQuery, device.Device<record.Unknown, string, string>>;
export interface ListParams extends device.RetrieveMultipleParams {
}
export declare const useList: Flux.UseList<ListParams, string, device.Device<record.Unknown, string, string>>;
export type UseDeleteArgs = device.Key | device.Key[];
export declare const useDelete: Flux.UseUpdate<UseDeleteArgs, UseDeleteArgs, import('zod').ZodNever>;
export interface CreateParams extends device.New {
}
export declare const useCreate: Flux.UseUpdate<CreateParams, device.Device<record.Unknown, string, string>, import('zod').ZodNever>;
export interface UseRetrieveGroupArgs {
}
export declare const useRetrieveGroupID: Flux.UseRetrieve<UseRetrieveGroupArgs, {
    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;
} | {
    type: "node" | "label" | "table" | "range" | "group" | "log" | "status" | "cluster" | "schematic" | "channel" | "workspace" | "user" | "task" | "device" | "rack" | "arc" | "allow_all" | "builtin" | "framer" | "range-alias" | "lineplot" | "policy" | "schematic_symbol";
    key: string;
} | undefined>;
export interface RenameParams extends Pick<device.Device, "key" | "name"> {
}
export declare const useRename: Flux.UseUpdate<RenameParams, RenameParams, import('zod').ZodNever>;
export declare const formSchema: import('zod').ZodObject<{
    key: import('zod').ZodString;
    rack: import('zod').ZodUInt32;
    name: import('zod').ZodString;
    make: import('zod').ZodString;
    model: import('zod').ZodString;
    location: import('zod').ZodString;
    configured: import('zod').ZodOptional<import('zod').ZodBoolean>;
    properties: import('zod').ZodUnion<[import('zod').ZodRecord<import('zod').ZodUnion<readonly [import('zod').ZodNumber, import('zod').ZodString, import('zod').ZodSymbol]>, import('zod').ZodUnknown>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<record.Unknown, string>>]>;
    status: import('zod').ZodOptional<import('zod').ZodPipe<import('zod').ZodNullable<import('zod').ZodType<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }, import('zod/v4/core').$ZodTypeInternals<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }>>>, import('zod').ZodTransform<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | undefined, {
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | null>>>;
}, import('zod/v4/core').$strip>;
export interface FormQuery extends RetrieveQuery {
}
export declare const createForm: <Properties extends record.Unknown = record.Unknown, Make extends string = string, Model extends string = string>() => Flux.UseForm<FormQuery, import('zod').ZodObject<{
    key: import('zod').ZodString;
    rack: import('zod').ZodUInt32;
    name: import('zod').ZodString;
    make: import('zod').ZodString;
    model: import('zod').ZodString;
    location: import('zod').ZodString;
    configured: import('zod').ZodOptional<import('zod').ZodBoolean>;
    properties: import('zod').ZodUnion<[import('zod').ZodRecord<import('zod').ZodUnion<readonly [import('zod').ZodNumber, import('zod').ZodString, import('zod').ZodSymbol]>, import('zod').ZodUnknown>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<record.Unknown, string>>]>;
    status: import('zod').ZodOptional<import('zod').ZodPipe<import('zod').ZodNullable<import('zod').ZodType<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }, import('zod/v4/core').$ZodTypeInternals<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }>>>, import('zod').ZodTransform<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | undefined, {
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | null>>>;
}, import('zod/v4/core').$strip>, FluxSubStore>;
export declare const useForm: Flux.UseForm<FormQuery, import('zod').ZodObject<{
    key: import('zod').ZodString;
    rack: import('zod').ZodUInt32;
    name: import('zod').ZodString;
    make: import('zod').ZodString;
    model: import('zod').ZodString;
    location: import('zod').ZodString;
    configured: import('zod').ZodOptional<import('zod').ZodBoolean>;
    properties: import('zod').ZodUnion<[import('zod').ZodRecord<import('zod').ZodUnion<readonly [import('zod').ZodNumber, import('zod').ZodString, import('zod').ZodSymbol]>, import('zod').ZodUnknown>, import('zod').ZodPipe<import('zod').ZodString, import('zod').ZodTransform<record.Unknown, string>>]>;
    status: import('zod').ZodOptional<import('zod').ZodPipe<import('zod').ZodNullable<import('zod').ZodType<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }, import('zod/v4/core').$ZodTypeInternals<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    }, {
        key: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: string | number | bigint | import('@synnaxlabs/x').TimeSpan | import('@synnaxlabs/x').TimeStamp | Date | [number, number] | [number] | [number, number, number] | {
            value: bigint;
        };
        details: {
            rack: number;
            device: string;
        };
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | null | undefined;
    }>>>, import('zod').ZodTransform<{
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | undefined, {
        key: string;
        name: string;
        variant: "error" | "success" | "info" | "warning" | "loading" | "disabled";
        message: string;
        time: import('@synnaxlabs/x').TimeStamp;
        details: {
            rack: number;
            device: string;
        };
        description?: string | undefined;
        labels?: {
            key: string;
            name: string;
            color: string;
        }[] | undefined;
    } | null>>>;
}, import('zod/v4/core').$strip>, FluxSubStore>;
export {};
//# sourceMappingURL=queries.d.ts.map