/**
 * Helper functions for representing commonly used ONVIF types in XML format
 * @author Andrew D.Laptev <a.d.laptev@gmail.com>
 */
import { Config, ItemList, MulticastConfiguration, StreamSetup } from '../interfaces/onvif';
import { PTZVector } from '../interfaces/common';
export type XSAny = Record<string, any> | undefined;
export declare const xsany = "__any__";
export declare function itemList(itemList: ItemList): {
    Extension?: import("../interfaces/onvif").ItemListExtension | undefined;
    ElementItem?: {
        $: any;
    }[] | undefined;
    SimpleItem?: {
        $: {
            Name: string;
            Value: unknown;
        };
    }[] | undefined;
};
export declare function config(config: Config): {
    $: {
        Name: string;
        Type: unknown;
    };
    Parameters: {
        Extension?: import("../interfaces/onvif").ItemListExtension | undefined;
        ElementItem?: {
            $: any;
        }[] | undefined;
        SimpleItem?: {
            $: {
                Name: string;
                Value: unknown;
            };
        }[] | undefined;
    };
};
export declare function multicastConfiguration(multicast: MulticastConfiguration): {
    Address: {
        IPv6Address?: string | undefined;
        IPv4Address?: string | undefined;
        Type: import("../interfaces/onvif").IPType;
    };
    Port: number;
    TTL: number;
    AutoStart: boolean;
};
export declare function streamSetupToBuild({ stream, transport }: StreamSetup): {
    Stream: import("../interfaces/onvif").StreamType;
    Transport: {
        Tunnel?: {
            Protocol: import("../interfaces/onvif").TransportProtocol;
        } | undefined;
        Protocol: import("../interfaces/onvif").TransportProtocol;
    };
};
export declare function ptzVectorToBuild(vector: PTZVector): {
    Zoom?: {
        $: {
            x: number;
        };
    } | undefined;
    PanTilt?: {
        $: {
            x: number;
            y: number;
        };
    } | undefined;
};
/**
 * ONVIF StringList / StringAttrList values are encoded as space-separated strings in XML attributes.
 */
export declare function stringListToBuild(list?: string[]): string | undefined;
