import * as VScript from "vscript";
import * as _EthernetStats from "./EthernetStats";
import * as _Primitives from "./Primitives";
export declare const lift: {
    readonly Port: (kwl: string | null, socket: VScript.VSocket) => Port | null;
    readonly Health: (kwl: string | null, socket: VScript.VSocket) => Health | null;
    readonly ErrorWindow: (x: any | null, _: VScript.VSocket) => ErrorWindow | null;
    readonly LaneStatistics: (kwl: string | null, socket: VScript.VSocket) => LaneStatistics | null;
    readonly EyeDiagram: (kwl: string | null, socket: VScript.VSocket) => EyeDiagram | null;
    readonly VirtualInterface: (kwl: string | null, socket: VScript.VSocket) => VirtualInterface | null;
    readonly LLDPNeighbor: (kwl: string | null, socket: VScript.VSocket) => LLDPNeighbor | null;
    readonly HostnameConfiguration: (kwl: string | null, socket: VScript.VSocket) => HostnameConfiguration | null;
    readonly CurrentVirtualEthernetConfiguration: (kwl: string | null, socket: VScript.VSocket) => CurrentVirtualEthernetConfiguration | null;
    readonly CurrentVirtualEthernetConfigurationVeths: (kwl: string | null, socket: VScript.VSocket) => CurrentVirtualEthernetConfigurationVeths | null;
    readonly CurrentPortConfiguration: (kwl: string | null, socket: VScript.VSocket) => CurrentPortConfiguration | null;
    readonly CurrentPortConfigurationVlans: (kwl: string | null, socket: VScript.VSocket) => CurrentPortConfigurationVlans | null;
    readonly CurrentBridgeConfiguration: (kwl: string | null, socket: VScript.VSocket) => CurrentBridgeConfiguration | null;
    readonly CurrentBridgeConfigurationDevices: (kwl: string | null, socket: VScript.VSocket) => CurrentBridgeConfigurationDevices | null;
    readonly DesiredSyslogConfiguration: (kwl: string | null, socket: VScript.VSocket) => DesiredSyslogConfiguration | null;
    readonly DesiredSyslogServer: (kwl: string | null, socket: VScript.VSocket) => DesiredSyslogServer | null;
    readonly CurrentSyslogConfiguration: (kwl: string | null, socket: VScript.VSocket) => CurrentSyslogConfiguration | null;
    readonly CurrentSyslogServer: (kwl: string | null, socket: VScript.VSocket) => CurrentSyslogServer | null;
    readonly CurrentVirtualInterfaceConfiguration: (kwl: string | null, socket: VScript.VSocket) => CurrentVirtualInterfaceConfiguration | null;
    readonly CurrentVirtualInterfaceConfigurationRoutes: (kwl: string | null, socket: VScript.VSocket) => CurrentVirtualInterfaceConfigurationRoutes | null;
    readonly CurrentVirtualInterfaceConfigurationIpAddresses: (kwl: string | null, socket: VScript.VSocket) => CurrentVirtualInterfaceConfigurationIpAddresses | null;
    readonly DesiredVirtualEthernetConfiguration: (kwl: string | null, socket: VScript.VSocket) => DesiredVirtualEthernetConfiguration | null;
    readonly DesiredVirtualEthernetConfigurationVeths: (kwl: string | null, socket: VScript.VSocket) => DesiredVirtualEthernetConfigurationVeths | null;
    readonly DesiredPortConfiguration: (kwl: string | null, socket: VScript.VSocket) => DesiredPortConfiguration | null;
    readonly DesiredPortConfigurationVlans: (kwl: string | null, socket: VScript.VSocket) => DesiredPortConfigurationVlans | null;
    readonly DesiredBridgeConfiguration: (kwl: string | null, socket: VScript.VSocket) => DesiredBridgeConfiguration | null;
    readonly DesiredBridgeConfigurationDevices: (kwl: string | null, socket: VScript.VSocket) => DesiredBridgeConfigurationDevices | null;
    readonly DesiredVirtualInterfaceConfiguration: (kwl: string | null, socket: VScript.VSocket) => DesiredVirtualInterfaceConfiguration | null;
    readonly DesiredVirtualInterfaceConfigurationRoutes: (kwl: string | null, socket: VScript.VSocket) => DesiredVirtualInterfaceConfigurationRoutes | null;
    readonly DesiredVirtualInterfaceConfigurationIpAddresses: (kwl: string | null, socket: VScript.VSocket) => DesiredVirtualInterfaceConfigurationIpAddresses | null;
    readonly MaskedIpAddress: (kwl: string | null, socket: VScript.VSocket) => MaskedIpAddress | null;
};
export declare const lower: {
    readonly Port: (ref: Port | null) => string | null;
    readonly Health: (ref: Health | null) => string | null;
    readonly ErrorWindow: (x: ErrorWindow | null) => number[] | null;
    readonly LaneStatistics: (ref: LaneStatistics | null) => string | null;
    readonly EyeDiagram: (ref: EyeDiagram | null) => string | null;
    readonly VirtualInterface: (ref: VirtualInterface | null) => string | null;
    readonly LLDPNeighbor: (ref: LLDPNeighbor | null) => string | null;
    readonly HostnameConfiguration: (ref: HostnameConfiguration | null) => string | null;
    readonly CurrentVirtualEthernetConfiguration: (ref: CurrentVirtualEthernetConfiguration | null) => string | null;
    readonly CurrentVirtualEthernetConfigurationVeths: (ref: CurrentVirtualEthernetConfigurationVeths | null) => string | null;
    readonly CurrentPortConfiguration: (ref: CurrentPortConfiguration | null) => string | null;
    readonly CurrentPortConfigurationVlans: (ref: CurrentPortConfigurationVlans | null) => string | null;
    readonly CurrentBridgeConfiguration: (ref: CurrentBridgeConfiguration | null) => string | null;
    readonly CurrentBridgeConfigurationDevices: (ref: CurrentBridgeConfigurationDevices | null) => string | null;
    readonly DesiredSyslogConfiguration: (ref: DesiredSyslogConfiguration | null) => string | null;
    readonly DesiredSyslogServer: (ref: DesiredSyslogServer | null) => string | null;
    readonly CurrentSyslogConfiguration: (ref: CurrentSyslogConfiguration | null) => string | null;
    readonly CurrentSyslogServer: (ref: CurrentSyslogServer | null) => string | null;
    readonly CurrentVirtualInterfaceConfiguration: (ref: CurrentVirtualInterfaceConfiguration | null) => string | null;
    readonly CurrentVirtualInterfaceConfigurationRoutes: (ref: CurrentVirtualInterfaceConfigurationRoutes | null) => string | null;
    readonly CurrentVirtualInterfaceConfigurationIpAddresses: (ref: CurrentVirtualInterfaceConfigurationIpAddresses | null) => string | null;
    readonly DesiredVirtualEthernetConfiguration: (ref: DesiredVirtualEthernetConfiguration | null) => string | null;
    readonly DesiredVirtualEthernetConfigurationVeths: (ref: DesiredVirtualEthernetConfigurationVeths | null) => string | null;
    readonly DesiredPortConfiguration: (ref: DesiredPortConfiguration | null) => string | null;
    readonly DesiredPortConfigurationVlans: (ref: DesiredPortConfigurationVlans | null) => string | null;
    readonly DesiredBridgeConfiguration: (ref: DesiredBridgeConfiguration | null) => string | null;
    readonly DesiredBridgeConfigurationDevices: (ref: DesiredBridgeConfigurationDevices | null) => string | null;
    readonly DesiredVirtualInterfaceConfiguration: (ref: DesiredVirtualInterfaceConfiguration | null) => string | null;
    readonly DesiredVirtualInterfaceConfigurationRoutes: (ref: DesiredVirtualInterfaceConfigurationRoutes | null) => string | null;
    readonly DesiredVirtualInterfaceConfigurationIpAddresses: (ref: DesiredVirtualInterfaceConfigurationIpAddresses | null) => string | null;
    readonly MaskedIpAddress: (ref: MaskedIpAddress | null) => string | null;
};
export declare type Lane = "P1_0" | "P1_1" | "P1_2" | "P1_3" | "P2_0" | "P2_1" | "P2_2" | "P2_3";
export declare type PortMode = "eth1g" | "eth10g" | "eth40g";
export declare class MaskedIpAddress {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get ip_address(): VScript.rKeyword<string, string, MaskedIpAddress>;
    get netmask(): VScript.rKeyword<string, string, MaskedIpAddress>;
}
export declare class MaskedIpAddressAsTableRow extends MaskedIpAddress {
    readonly enclosing_table: VScript.StronglyTypedTable<MaskedIpAddress>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<MaskedIpAddress>);
}
export declare type ReversePathFilter = "Disabled" | "Loose" | "Strict";
declare class DesiredVirtualInterfaceConfigurationIpAddresses {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get ip_address(): VScript.rwKeyword<string, string, DesiredVirtualInterfaceConfigurationIpAddresses>;
    get prefix(): VScript.rwKeyword<number, number, DesiredVirtualInterfaceConfigurationIpAddresses>;
    /**
      Delete
    */
    get delete_ip_address(): VScript.wKeyword<"Click", "Click", DesiredVirtualInterfaceConfigurationIpAddresses>;
}
declare class DesiredVirtualInterfaceConfigurationRoutes {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Destination address or subnet for this route. Leave blank for the default
      route.
    */
    get dst(): VScript.rwKeyword<string, string, DesiredVirtualInterfaceConfigurationRoutes>;
    get dst_prefix(): VScript.rwKeyword<number, number, DesiredVirtualInterfaceConfigurationRoutes>;
    get via(): VScript.rwKeyword<string, string, DesiredVirtualInterfaceConfigurationRoutes>;
    get weight(): VScript.rwKeyword<number, number, DesiredVirtualInterfaceConfigurationRoutes>;
    /**
      Delete
    */
    get delete_route(): VScript.wKeyword<"Click", "Click", DesiredVirtualInterfaceConfigurationRoutes>;
}
export declare class DesiredVirtualInterfaceConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, DesiredVirtualInterfaceConfiguration>;
    /**
      Add IP address
    */
    get add_ip_address(): VScript.wKeyword<"Click", "Click", DesiredVirtualInterfaceConfiguration>;
    /**
      Add route
    */
    get add_route(): VScript.wKeyword<"Click", "Click", DesiredVirtualInterfaceConfiguration>;
    get dhcp(): VScript.rwKeyword<boolean, boolean, DesiredVirtualInterfaceConfiguration>;
    /**
      BusyBox NTP server using current system time as source
    */
    get ntpd(): VScript.rwKeyword<boolean, boolean, DesiredVirtualInterfaceConfiguration>;
    get reverse_path_filter(): VScript.rwKeyword<ReversePathFilter, ReversePathFilter, DesiredVirtualInterfaceConfiguration>;
    get ip_addresses(): VScript.StronglyTypedTable<DesiredVirtualInterfaceConfigurationIpAddresses, VScript.TableRowView<DesiredVirtualInterfaceConfigurationIpAddresses>>;
    get routes(): VScript.StronglyTypedTable<DesiredVirtualInterfaceConfigurationRoutes, VScript.TableRowView<DesiredVirtualInterfaceConfigurationRoutes>>;
}
declare class DesiredBridgeConfigurationDevices {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get wrapped_reference(): VScript.rwKeyword<string | null, DesiredVirtualInterfaceConfiguration | null, DesiredBridgeConfigurationDevices>;
}
export declare class DesiredBridgeConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, DesiredBridgeConfiguration>;
    /**
      Enable spanning tree protocol on this bridge
    */
    get stp(): VScript.rwKeyword<boolean, boolean, DesiredBridgeConfiguration>;
    /**
      Delete
    */
    get delete_bridge(): VScript.wKeyword<"Click", "Click", DesiredBridgeConfiguration>;
    get settings(): DesiredVirtualInterfaceConfiguration;
    get devices(): VScript.StronglyTypedArray<DesiredBridgeConfiguration, DesiredBridgeConfigurationDevices, VScript.RowView<DesiredBridgeConfigurationDevices>>;
}
export declare class DesiredBridgeConfigurationAsTableRow extends DesiredBridgeConfiguration {
    readonly enclosing_table: VScript.StronglyTypedTable<DesiredBridgeConfiguration>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<DesiredBridgeConfiguration>);
}
declare class DesiredPortConfigurationVlans {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get vlan_id(): VScript.rwKeyword<number, number, DesiredPortConfigurationVlans>;
    /**
      Delete
    */
    get delete_vlan(): VScript.wKeyword<"Click", "Click", DesiredPortConfigurationVlans>;
    get settings(): DesiredVirtualInterfaceConfiguration;
}
export declare class DesiredPortConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Add VLAN
    */
    get add_vlan(): VScript.wKeyword<"Click", "Click", DesiredPortConfiguration>;
    /**
      Add Bridge
    */
    get add_bridge(): VScript.wKeyword<"Click", "Click", DesiredPortConfiguration>;
    get base(): DesiredVirtualInterfaceConfiguration;
    get vlans(): VScript.StronglyTypedTable<DesiredPortConfigurationVlans, VScript.TableRowView<DesiredPortConfigurationVlans>>;
    get bridges(): VScript.StronglyTypedTable<DesiredBridgeConfiguration, VScript.TableRowView<DesiredBridgeConfiguration>>;
}
declare class DesiredVirtualEthernetConfigurationVeths {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, DesiredVirtualEthernetConfigurationVeths>;
    /**
      Delete this VETH
    */
    get delete_veth(): VScript.wKeyword<"Click", "Click", DesiredVirtualEthernetConfigurationVeths>;
    get endpoint0(): VScript.rwKeyword<string | null, DesiredBridgeConfiguration | null, DesiredVirtualEthernetConfigurationVeths>;
    get endpoint1(): VScript.rwKeyword<string | null, DesiredBridgeConfiguration | null, DesiredVirtualEthernetConfigurationVeths>;
}
export declare class DesiredVirtualEthernetConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Save veth settings
    */
    get save_veth_config(): VScript.wKeyword<"Click", "Click", DesiredVirtualEthernetConfiguration>;
    /**
      Revert veth settings
    */
    get revert_veth_config(): VScript.wKeyword<"Click", "Click", DesiredVirtualEthernetConfiguration>;
    /**
      Add VETH
    */
    get add_veth(): VScript.wKeyword<"Click", "Click", DesiredVirtualEthernetConfiguration>;
    get veths(): VScript.StronglyTypedTable<DesiredVirtualEthernetConfigurationVeths, VScript.TableRowView<DesiredVirtualEthernetConfigurationVeths>>;
}
declare class CurrentVirtualInterfaceConfigurationIpAddresses {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get ip_address(): VScript.rKeyword<string, string, CurrentVirtualInterfaceConfigurationIpAddresses>;
    get prefix(): VScript.rKeyword<number, number, CurrentVirtualInterfaceConfigurationIpAddresses>;
}
declare class CurrentVirtualInterfaceConfigurationRoutes {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Destination address or subnet for this route. Blank for the default
      route.
    */
    get dst(): VScript.rKeyword<string, string, CurrentVirtualInterfaceConfigurationRoutes>;
    get dst_prefix(): VScript.rKeyword<number, number, CurrentVirtualInterfaceConfigurationRoutes>;
    get via(): VScript.rKeyword<string, string, CurrentVirtualInterfaceConfigurationRoutes>;
    get weight(): VScript.rKeyword<number, number, CurrentVirtualInterfaceConfigurationRoutes>;
}
export declare class CurrentVirtualInterfaceConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, CurrentVirtualInterfaceConfiguration>;
    get dhcp(): VScript.rKeyword<boolean, boolean, CurrentVirtualInterfaceConfiguration>;
    /**
      BusyBox NTP server using current system time as source
    */
    get ntpd(): VScript.rKeyword<boolean, boolean, CurrentVirtualInterfaceConfiguration>;
    get reverse_path_filter(): VScript.rKeyword<ReversePathFilter, ReversePathFilter, CurrentVirtualInterfaceConfiguration>;
    get ip_addresses(): VScript.StronglyTypedTable<CurrentVirtualInterfaceConfigurationIpAddresses, VScript.TableRowView<CurrentVirtualInterfaceConfigurationIpAddresses>>;
    get routes(): VScript.StronglyTypedTable<CurrentVirtualInterfaceConfigurationRoutes, VScript.TableRowView<CurrentVirtualInterfaceConfigurationRoutes>>;
}
export declare type Protocol = "UDP" | "TCP";
export declare class CurrentSyslogServer {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get address(): VScript.rKeyword<string, string, CurrentSyslogServer>;
    get protocol(): VScript.rKeyword<Protocol, Protocol, CurrentSyslogServer>;
    get rebind_interval(): VScript.rKeyword<number, number, CurrentSyslogServer>;
    get keep_alive(): VScript.rKeyword<boolean, boolean, CurrentSyslogServer>;
}
export declare class CurrentSyslogServerAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends CurrentSyslogServer {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class CurrentSyslogConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get syslog_servers(): VScript.StronglyTypedArray<CurrentSyslogConfiguration, CurrentSyslogServer, VScript.RowView<CurrentSyslogServer>>;
}
export declare class DesiredSyslogServer {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get address(): VScript.rwKeyword<string, string, DesiredSyslogServer>;
    get protocol(): VScript.rwKeyword<Protocol, Protocol, DesiredSyslogServer>;
    get rebind_interval(): VScript.rwKeyword<number, number, DesiredSyslogServer>;
    get keep_alive(): VScript.rwKeyword<boolean, boolean, DesiredSyslogServer>;
}
export declare class DesiredSyslogServerAsArrayRow<ParentType extends VScript.StronglyTypedSubtree> extends DesiredSyslogServer {
    readonly index: number;
    readonly parent: ParentType;
    constructor(st: VScript.Subtree, index: number, parent: ParentType);
}
export declare class DesiredSyslogConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get syslog_servers(): VScript.StronglyTypedArray<DesiredSyslogConfiguration, DesiredSyslogServer, VScript.RowView<DesiredSyslogServer>>;
}
declare class CurrentBridgeConfigurationDevices {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get wrapped_reference(): VScript.rKeyword<string | null, CurrentVirtualInterfaceConfiguration | null, CurrentBridgeConfigurationDevices>;
}
export declare class CurrentBridgeConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, CurrentBridgeConfiguration>;
    get stp(): VScript.rKeyword<boolean, boolean, CurrentBridgeConfiguration>;
    get settings(): CurrentVirtualInterfaceConfiguration;
    get devices(): VScript.StronglyTypedTable<CurrentBridgeConfigurationDevices, VScript.TableRowView<CurrentBridgeConfigurationDevices>>;
}
export declare class CurrentBridgeConfigurationAsTableRow extends CurrentBridgeConfiguration {
    readonly enclosing_table: VScript.StronglyTypedTable<CurrentBridgeConfiguration>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<CurrentBridgeConfiguration>);
}
declare class CurrentPortConfigurationVlans {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get vlan_id(): VScript.rKeyword<number, number, CurrentPortConfigurationVlans>;
    get settings(): CurrentVirtualInterfaceConfiguration;
}
export declare class CurrentPortConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get unknown_commands(): VScript.rKeyword<string, string, CurrentPortConfiguration>;
    get base(): CurrentVirtualInterfaceConfiguration;
    get vlans(): VScript.StronglyTypedTable<CurrentPortConfigurationVlans, VScript.TableRowView<CurrentPortConfigurationVlans>>;
    get bridges(): VScript.StronglyTypedTable<CurrentBridgeConfiguration, VScript.TableRowView<CurrentBridgeConfiguration>>;
}
declare class CurrentVirtualEthernetConfigurationVeths {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, CurrentVirtualEthernetConfigurationVeths>;
    get endpoint0(): VScript.rKeyword<string | null, CurrentBridgeConfiguration | null, CurrentVirtualEthernetConfigurationVeths>;
    get endpoint1(): VScript.rKeyword<string | null, CurrentBridgeConfiguration | null, CurrentVirtualEthernetConfigurationVeths>;
}
export declare class CurrentVirtualEthernetConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get veths(): VScript.StronglyTypedTable<CurrentVirtualEthernetConfigurationVeths, VScript.TableRowView<CurrentVirtualEthernetConfigurationVeths>>;
}
export declare class HostnameConfiguration {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Save hostname settings
    */
    get save_hostname_config(): VScript.wKeyword<"Click", "Click", HostnameConfiguration>;
    /**
      Revert hostname settings
    */
    get revert_hostname_config(): VScript.wKeyword<"Click", "Click", HostnameConfiguration>;
    get current_configuration(): VScript.rKeyword<string, string, HostnameConfiguration>;
    /**
      A valid hostname may only contain the following characters: 0-9, a-z,
      A-Z, - and .
    */
    get desired_configuration(): VScript.rwKeyword<string, string, HostnameConfiguration>;
}
export declare class LLDPNeighbor {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      System runtime since boot
    */
    get last_changed(): VScript.rKeyword<number, number, LLDPNeighbor>;
    get rid(): VScript.rKeyword<number, number, LLDPNeighbor>;
    get system_name(): VScript.rKeyword<string, string, LLDPNeighbor>;
    get system_description(): VScript.rKeyword<string, string, LLDPNeighbor>;
    get chassis_id(): VScript.rKeyword<string, string, LLDPNeighbor>;
    get interface_name(): VScript.rKeyword<string, string, LLDPNeighbor>;
    get vlan_id(): VScript.rKeyword<number, number, LLDPNeighbor>;
    get mgmt_addr_v4(): VScript.rKeyword<string, string, LLDPNeighbor>;
    get mgmt_addr_v6(): VScript.rKeyword<string, string, LLDPNeighbor>;
}
export declare class LLDPNeighborAsTableRow extends LLDPNeighbor {
    readonly enclosing_table: VScript.StronglyTypedTable<LLDPNeighbor>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<LLDPNeighbor>);
}
export declare class VirtualInterface {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, VirtualInterface>;
    /**
      TODO: look up actual upper bound
    */
    get linux_ifc_index(): VScript.rKeyword<number, number, VirtualInterface>;
    /**
      NOTE: the empty string is interpreted as <null>
    */
    get ifname(): VScript.rKeyword<string, string, VirtualInterface>;
    get vlan_id(): VScript.rKeyword<number, number, VirtualInterface>;
    get supports_ptp(): VScript.rKeyword<boolean, boolean, VirtualInterface>;
    get supports_rtp(): VScript.rKeyword<boolean, boolean, VirtualInterface>;
    get running(): VScript.rKeyword<boolean, boolean, VirtualInterface>;
    get ip_addresses(): VScript.StronglyTypedTable<MaskedIpAddress, VScript.TableRowView<MaskedIpAddress>>;
}
export declare class VirtualInterfaceAsTableRow extends VirtualInterface {
    readonly enclosing_table: VScript.StronglyTypedTable<VirtualInterface>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<VirtualInterface>);
}
export declare class EyeDiagram {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Generate eye diagram
    */
    get generate(): VScript.wKeyword<"Click", "Click", EyeDiagram>;
    get progress(): VScript.rKeyword<number, number, EyeDiagram>;
    /**
      @brief URL of the eye diagram
      @desc An update to this keyword signals a new eye diagram has been
      generated
    */
    get url(): VScript.rKeyword<string, string, EyeDiagram>;
    /**
      @brief Measure eye opening only
      @desc Only measure horizontal eye opening (much faster than a full eye)
    */
    get measure_ui(): VScript.wKeyword<"Click", "Click", EyeDiagram>;
    get ui(): VScript.rKeyword<number, number, EyeDiagram>;
}
export declare class LaneStatistics {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get lane(): VScript.rKeyword<Lane, Lane, LaneStatistics>;
    get brief(): VScript.rKeyword<string, string, LaneStatistics>;
    /**
      maximum throughput (per direction), measured in bits/second
    */
    get max_throughput(): VScript.rKeyword<number, number, LaneStatistics>;
    get locked_to_data(): VScript.rKeyword<boolean, boolean, LaneStatistics>;
    get block_lock(): VScript.rKeyword<boolean, boolean, LaneStatistics>;
    get high_ber(): VScript.rKeyword<boolean, boolean, LaneStatistics>;
    get bip_errors(): VScript.rKeyword<number, number, LaneStatistics>;
    get tx_streams(): VScript.StronglyTypedArray<LaneStatistics, _EthernetStats.Counter, VScript.RowView<_EthernetStats.Counter>>;
    get tx_all_streams(): _EthernetStats.Counter;
    get eye(): EyeDiagram;
}
export declare class LaneStatisticsAsTableRow extends LaneStatistics {
    readonly enclosing_table: VScript.StronglyTypedTable<LaneStatistics>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<LaneStatistics>);
}
export declare type FaultStatus = "LINK_UP" | "LOCAL_FAULT" | "REMOTE_FAULT";
export interface ErrorWindow {
    /**
      Window size over which errors are checked
    */
    window: number;
    /**
      Number of errors in the window before the condition is met
    */
    threshold: number;
}
export declare class Health {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get unreliable(): VScript.rKeyword<boolean, boolean, Health>;
    /**
      Include aggregate_traffic_statistics.rx_error and
      aggregate_traffic_statistics.rx_crc_error in addition to the BIP error
      counters (which are only available in 40GbE)
    */
    get include_rx_errors(): VScript.rwKeyword<boolean, boolean, Health>;
    get set_unreliable(): VScript.duplexKeyword<any, ErrorWindow | null, this>;
    get clear_unreliable(): VScript.duplexKeyword<any, ErrorWindow | null, this>;
}
export declare class Port {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    get brief(): VScript.rKeyword<string, string, Port>;
    get port_id(): VScript.rKeyword<_Primitives.NetworkPortID, _Primitives.NetworkPortID, Port>;
    get device_name(): VScript.rKeyword<string, string, Port>;
    /**
      maximum throughput (per direction), measured in bits/second
    */
    get max_throughput(): VScript.rKeyword<number, number, Port>;
    get port_mode(): VScript.duplexKeyword<PortMode, PortMode, Port>;
    get fault_status(): VScript.rKeyword<FaultStatus, FaultStatus, Port>;
    get link_up(): VScript.rKeyword<boolean, boolean, Port>;
    /**
      System runtime since boot
    */
    get link_up_last_changed(): VScript.rKeyword<number, number, Port>;
    /**
      MAC address, stored in big-endian order.
    */
    get mac_address(): VScript.rKeyword<[number, number, number, number, number, number], [number, number, number, number, number, number], Port>;
    get supports_ptp(): VScript.rKeyword<boolean, boolean, Port>;
    get supports_rtp(): VScript.rKeyword<boolean, boolean, Port>;
    /**
      To execute shell commands on this interface, you will first need to enter
      its hosting network namespace. E.g., if `network_namespace` reads
      `ns_eth0.2`, the following command lists its IP addresses: `ip netns exec
      ns_eth0.2 ip addr show`
    */
    get network_namespace(): VScript.rKeyword<string, string, Port>;
    /**
      Save interface
    */
    get save_config(): VScript.wKeyword<"Click", "Click", Port>;
    /**
      Revert interface
    */
    get revert_config(): VScript.wKeyword<"Click", "Click", Port>;
    /**
      Save syslog settings
    */
    get save_syslog_config(): VScript.wKeyword<"Click", "Click", Port>;
    /**
      Revert syslog settings
    */
    get revert_syslog_config(): VScript.wKeyword<"Click", "Click", Port>;
    get health(): Health;
    get current_configuration(): CurrentPortConfiguration;
    get desired_configuration(): DesiredPortConfiguration;
    get current_syslog_configuration(): CurrentSyslogConfiguration;
    get desired_syslog_configuration(): DesiredSyslogConfiguration;
    get virtual_interfaces(): VScript.StronglyTypedTable<VirtualInterface, VScript.TableRowView<VirtualInterface>>;
    get fpga_lane_statistics(): VScript.StronglyTypedTable<LaneStatistics, VScript.TableRowView<LaneStatistics>>;
    /**
      aggregate statistics as obtained by summing over all of a
      (FPGA-connected) port's internal lanes. Note that management ports never
      report traffic statistics, regardless of their actual activity
    */
    get aggregate_traffic_statistics(): _EthernetStats.PortStatistics;
    get lldp_neighbors(): VScript.StronglyTypedTable<LLDPNeighbor, VScript.TableRowView<LLDPNeighbor>>;
}
export declare class PortAsTableRow extends Port {
    readonly enclosing_table: VScript.StronglyTypedTable<Port>;
    readonly index: number;
    constructor(raw_row: VScript.TableRow, enclosing_table: VScript.StronglyTypedTable<Port>);
}
export declare class All {
    readonly raw: VScript.Subtree;
    constructor(raw: VScript.Subtree);
    /**
      Save all interfaces
    */
    get save_config(): VScript.wKeyword<"Click", "Click", All>;
    /**
      Revert all interfaces
    */
    get revert_config(): VScript.wKeyword<"Click", "Click", All>;
    /**
      Save all syslog settings
    */
    get save_syslog_config(): VScript.wKeyword<"Click", "Click", All>;
    /**
      Revert all syslog settings
    */
    get revert_syslog_config(): VScript.wKeyword<"Click", "Click", All>;
    get ports(): VScript.StronglyTypedTable<Port, VScript.TableRowView<Port>>;
    get rx_streams(): VScript.StronglyTypedArray<All, _EthernetStats.Counter, VScript.RowView<_EthernetStats.Counter>>;
    get hostname(): HostnameConfiguration;
    get current_veth_configuration(): CurrentVirtualEthernetConfiguration;
    get desired_veth_configuration(): DesiredVirtualEthernetConfiguration;
}
export declare const Enums: {
    readonly FaultStatus: FaultStatus[];
    readonly Protocol: Protocol[];
    readonly ReversePathFilter: ReversePathFilter[];
    readonly PortMode: PortMode[];
    readonly Lane: Lane[];
};
export {};
