import type { CreateDeviceConnectionPayload, DeviceBrandItem, DeviceConnectionType, DeviceItem, DeviceModelItem, DeviceStructure, I18nText, LangDict, WorkAreaItem } from '../types'; export declare type ConnectMode = 'existing' | 'new'; export declare type ConnectStep = 'pick' | 'config'; export declare type NetworkMethod = 'auto' | 'manual'; export interface ConnectFormValues { name?: LangDict; description?: LangDict; workarea_id?: number; connection_type?: string; connection_method?: NetworkMethod; connection_ip?: string; profile_ids?: number[]; } export interface UseConnectDeviceModalParams { open: boolean; mode: ConnectMode; connectionType?: DeviceConnectionType; targetStructure?: DeviceStructure; currentDevice: DeviceItem; connectedDeviceIds: number[]; currentWorkAreaId?: number; getText: (key: string) => string; translation: (val?: I18nText) => string; onSubmit?: (payload: CreateDeviceConnectionPayload) => void; } export declare const useConnectDeviceModal: ({ open, mode, connectionType, targetStructure, currentDevice, connectedDeviceIds, currentWorkAreaId, getText, translation, onSubmit, }: UseConnectDeviceModalParams) => { step: ConnectStep; workAreas: WorkAreaItem[]; brands: DeviceBrandItem[]; models: DeviceModelItem[]; selectedWorkAreaId: number | undefined; selectedModel: DeviceModelItem | undefined; keyword: string; loading: boolean; pickingDeviceId: number | undefined; currentIsSmart: boolean; targetKind: "smart" | "dumb"; peripheral: DeviceItem | undefined; smartDevice: DeviceItem | undefined; profileOptions: { label: string; value: number; }[]; profileRequired: boolean; connectionTypes: string[]; filteredDevices: DeviceItem[]; getWorkAreaDeviceCount: (area: WorkAreaItem) => number; getDeviceCountText: (count: number) => string; setSelectedWorkAreaId: import("react").Dispatch>; setKeyword: import("react").Dispatch>; handlePickDevice: (device: DeviceItem) => void; handlePickModel: (model: DeviceModelItem) => void; handleBackToPick: () => void; handleSubmit: (values: ConnectFormValues) => void; };