import type { ApiEndpoints } from './omv-rpc.js';
import type { Disk } from './types-disk.js';
import type { HwInfo } from './types-hwInfo.js';
import type { FileSystem } from './types-fileSystem.js';
import type { ShareMgmt } from './types-shareMgmt.js';
import type { Smart } from './types-smart.js';
import type { Smb } from './types-smb.js';
export type myTreeData = Disk | FileSystem | HwInfo | ShareMgmt | Smart | Smb;
export interface EndpointData {
    service: string;
    method: string;
    params?: {
        [key: string]: any;
    } | null;
}
export interface IoBrokerObjectDefinitions<TTreeData extends myTreeData = myTreeData, TAdapter extends ioBroker.Adapter | ioBroker.myAdapter = ioBroker.Adapter | ioBroker.myAdapter> {
    channelName: string;
    deviceIdProperty: string | undefined | ((objDevice: TTreeData, adapter: TAdapter) => string);
    deviceNameProperty: string | undefined | ((objDevice: TTreeData, adapter: TAdapter) => string);
    deviceIsOnlineState?: string;
    deviceHasErrorsState?: string;
    additionalRequest?: {
        endpoint: ApiEndpoints;
        conditionProperty: string;
        paramsProperty: string;
        converter?: (data: any, adapter: ioBroker.myAdapter) => TTreeData;
    }[];
}
