///
import { CPluginClient, IPlugin } from '@bettercorp/service-base/lib/interfaces/plugins';
import { Readable } from 'stream';
import { Device, DeviceAction, Fault, IBCDeviceActionR, TR069ConnectionInfo, TR069EARGetFileType, TR069EARGetUploadFileUrlResponse, TRFile, TRFileResp, TRFileType, TRUploadedFile } from '../../lib';
import { IPluginConfig } from './sec.config';
export declare class tr069 extends CPluginClient {
readonly _pluginName: string;
devices: tr069Devices;
groups: tr069Groups;
actions: tr069Actions;
events: tr069Events;
faults: tr069Faults;
files: tr069Files;
constructor(uSelf: IPlugin);
}
export interface tr069UploadedFile extends TRUploadedFile {
downUrl: string;
}
export interface tr069FileDownloaded extends TRFileResp {
time: number;
ip: string;
}
export interface tr069DeviceInformed {
deviceId: string;
groupId: string;
time: number;
ip: string;
}
export declare class tr069Events extends CPluginClient {
readonly _pluginName: string;
deviceFileDownloaded(listener: {
(data: tr069FileDownloaded): Promise;
}): Promise;
deviceInformed(listener: {
(data: tr069DeviceInformed): Promise;
}): Promise;
deviceActionAdded(listener: {
(data: DeviceAction): Promise;
}): Promise;
deviceActionCompleted(listener: {
(data: DeviceAction): Promise;
}): Promise;
deviceActionTriggered(listener: {
(data: DeviceAction): Promise;
}): Promise;
deviceAdded(listener: {
(data: Device): Promise;
}): Promise;
deviceAdopted(listener: {
(data: Device): Promise;
}): Promise;
faultReceived(listener: {
(data: Fault): Promise;
}): Promise;
deviceFileUploaded(listener: {
(data: tr069UploadedFile): Promise;
}): Promise;
}
export declare class tr069Devices extends CPluginClient {
readonly _pluginName: string;
get(id: string): Promise;
adopt(id: string): Promise;
}
export declare class tr069Groups extends CPluginClient {
readonly _pluginName: string;
update(sourceGroupId: string, sourcePlugin: string, autoAdopt: boolean): Promise;
getConnectionInformation(sourceGroupId: string, sourcePlugin: string): Promise;
}
export declare class tr069Actions extends CPluginClient {
readonly _pluginName: string;
add(deviceId: string, groupId: string, action: IBCDeviceActionR): Promise>;
}
export declare class tr069Faults extends CPluginClient {
readonly _pluginName: string;
}
export declare class tr069Files extends CPluginClient {
readonly _pluginName: string;
readyForDeviceUpload(type: TRFileType, groupId: string, deviceId: string): Promise;
add(filename: string, type: TRFileType, stream: Readable, groupId?: string, deviceId?: string, note?: string): Promise;
get(type: TR069EARGetFileType, filename: String, key: String, deviceId: string, id: string, groupId: string, tenantId: string): Promise;
}