///
import { Template } from "../structure";
export interface TagType {
code: number;
sintPos?: number | null;
typeName: string | null;
structure: boolean;
arrayDims: number;
reserved: boolean;
}
export interface ExtendedTagType extends TagType {
structureObj: {
[key: string]: ExtendedTagType;
};
}
export interface TagItem {
id: number;
name: string;
program?: string | null;
instance_id?: string;
type: TagType;
}
export declare class TagList {
tags: TagItem[];
templates: {
[key: string]: Template | null;
};
constructor();
/**
* Generates the CIP message to request a list of tags
*
* @param {number} [instanceID = 0] - instance id to start getting a list of object tags
* @param {string} program - (optional) name of the program to search
* @returns {buffer}
*/
_generateListMessageRequest(instanceID?: number, program?: string | null): Buffer;
/**
* Parse CIP response into tag data
*
* @param {buffer} data - Buffer data to parse
* @param {string} program - (optional) name of the program tag is from (optional)
* @returns {number} Last instance id parsed
*/
_parseAttributeListResponse(data: Buffer, program?: string | null): number | null;
_getTagTypeNames(): void;
_parseTagType(tagType: any): {
code: number;
sintPos: number | null;
typeName: null;
structure: boolean;
arrayDims: number;
reserved: boolean;
};
/**
* Parse CIP response into tag data
*
* @param {node-ethernet-ip.Controller} PLC - Controller to get tags from
* @param {string} [program = null] - (optional) name of the program tag is from (optional)
* @returns {Promise}
*/
getControllerTags(PLC: any, program?: string | null): Promise;
/**
* Gets Controller Program Names
*
* @returns {array[string]}
*/
get programs(): string[];
getTag(tagName: any, program?: null): TagItem | undefined;
getTemplateByTag(tagName: any, program?: string | null): Template | null;
_getAllTemplates(PLC: any): Promise;
}