import { Parameter } from "./parameter";
import { RequestHeader, ResponseHeader } from "./header";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api";
/** Robot identity information, which should be static while robot is powered-on. */
export interface RobotId {
    /** A unique string identifier for the particular robot. */
    serialNumber: string;
    /** Type of robot.  E.g., 'spot'. */
    species: string;
    /** Robot version/platform. */
    version: string;
    /** Version information about software running on the robot. */
    softwareRelease: RobotSoftwareRelease | undefined;
    /** Optional, customer-supplied nickname. */
    nickname: string;
    /**
     * Computer Serial Number. Unlike serial_number, which identifies a complete robot,
     * the computer_serial_number identifies the computer hardware used in the robot.
     */
    computerSerialNumber: string;
}
/** The software versioning number for a release. */
export interface SoftwareVersion {
    /** Signficant changes to software. */
    majorVersion: number;
    /** Normal changes to software. */
    minorVersion: number;
    /** Fixes which should not change intended capabilities or affect compatibility. */
    patchLevel: number;
}
/** Description of the software release currently running on the robot. */
export interface RobotSoftwareRelease {
    /** The software version, e.g., 2.0.1 */
    version: SoftwareVersion | undefined;
    /** The name of the robot, e.g., '20190601' */
    name: string;
    /** Kind of software release. */
    type: string;
    /** Timestamp of the changeset. */
    changesetDate: Date | undefined;
    /** Changeset hash. */
    changeset: string;
    /** API version.  E.g., 2.14.5. */
    apiVersion: string;
    /** Extra information associated with the build. */
    buildInformation: string;
    /** Date/time when release was installed. */
    installDate: Date | undefined;
    /** Other information about the build. */
    parameters: Parameter[];
}
/** The RobotId request message sent to a robot to learn it's basic identification information. */
export interface RobotIdRequest {
    /** Common request/response header. */
    header: RequestHeader | undefined;
}
/** The RobotId response message, including the ID information for a robot. */
export interface RobotIdResponse {
    /** Common request/response header. */
    header: ResponseHeader | undefined;
    /** The requested RobotId information. */
    robotId: RobotId | undefined;
}
export declare const RobotId: {
    encode(message: RobotId, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RobotId;
    fromJSON(object: any): RobotId;
    toJSON(message: RobotId): unknown;
    fromPartial<I extends {
        serialNumber?: string | undefined;
        species?: string | undefined;
        version?: string | undefined;
        softwareRelease?: {
            version?: {
                majorVersion?: number | undefined;
                minorVersion?: number | undefined;
                patchLevel?: number | undefined;
            } | undefined;
            name?: string | undefined;
            type?: string | undefined;
            changesetDate?: Date | undefined;
            changeset?: string | undefined;
            apiVersion?: string | undefined;
            buildInformation?: string | undefined;
            installDate?: Date | undefined;
            parameters?: {
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            }[] | undefined;
        } | undefined;
        nickname?: string | undefined;
        computerSerialNumber?: string | undefined;
    } & {
        serialNumber?: string | undefined;
        species?: string | undefined;
        version?: string | undefined;
        softwareRelease?: ({
            version?: {
                majorVersion?: number | undefined;
                minorVersion?: number | undefined;
                patchLevel?: number | undefined;
            } | undefined;
            name?: string | undefined;
            type?: string | undefined;
            changesetDate?: Date | undefined;
            changeset?: string | undefined;
            apiVersion?: string | undefined;
            buildInformation?: string | undefined;
            installDate?: Date | undefined;
            parameters?: {
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            }[] | undefined;
        } & {
            version?: ({
                majorVersion?: number | undefined;
                minorVersion?: number | undefined;
                patchLevel?: number | undefined;
            } & {
                majorVersion?: number | undefined;
                minorVersion?: number | undefined;
                patchLevel?: number | undefined;
            } & { [K in Exclude<keyof I["softwareRelease"]["version"], keyof SoftwareVersion>]: never; }) | undefined;
            name?: string | undefined;
            type?: string | undefined;
            changesetDate?: Date | undefined;
            changeset?: string | undefined;
            apiVersion?: string | undefined;
            buildInformation?: string | undefined;
            installDate?: Date | undefined;
            parameters?: ({
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            }[] & ({
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            } & {
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: ({
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } & { [K_1 in Exclude<keyof I["softwareRelease"]["parameters"][number]["duration"], keyof import("../../google/protobuf/duration").Duration>]: never; }) | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            } & { [K_2 in Exclude<keyof I["softwareRelease"]["parameters"][number], keyof Parameter>]: never; })[] & { [K_3 in Exclude<keyof I["softwareRelease"]["parameters"], keyof {
                label?: string | undefined;
                units?: string | undefined;
                intValue?: number | undefined;
                floatValue?: number | undefined;
                timestamp?: Date | undefined;
                duration?: {
                    seconds?: number | undefined;
                    nanos?: number | undefined;
                } | undefined;
                stringValue?: string | undefined;
                boolValue?: boolean | undefined;
                uintValue?: number | undefined;
                notes?: string | undefined;
            }[]>]: never; }) | undefined;
        } & { [K_4 in Exclude<keyof I["softwareRelease"], keyof RobotSoftwareRelease>]: never; }) | undefined;
        nickname?: string | undefined;
        computerSerialNumber?: string | undefined;
    } & { [K_5 in Exclude<keyof I, keyof RobotId>]: never; }>(object: I): RobotId;
};
export declare const SoftwareVersion: {
    encode(message: SoftwareVersion, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SoftwareVersion;
    fromJSON(object: any): SoftwareVersion;
    toJSON(message: SoftwareVersion): unknown;
    fromPartial<I extends {
        majorVersion?: number | undefined;
        minorVersion?: number | undefined;
        patchLevel?: number | undefined;
    } & {
        majorVersion?: number | undefined;
        minorVersion?: number | undefined;
        patchLevel?: number | undefined;
    } & { [K in Exclude<keyof I, keyof SoftwareVersion>]: never; }>(object: I): SoftwareVersion;
};
export declare const RobotSoftwareRelease: {
    encode(message: RobotSoftwareRelease, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RobotSoftwareRelease;
    fromJSON(object: any): RobotSoftwareRelease;
    toJSON(message: RobotSoftwareRelease): unknown;
    fromPartial<I extends {
        version?: {
            majorVersion?: number | undefined;
            minorVersion?: number | undefined;
            patchLevel?: number | undefined;
        } | undefined;
        name?: string | undefined;
        type?: string | undefined;
        changesetDate?: Date | undefined;
        changeset?: string | undefined;
        apiVersion?: string | undefined;
        buildInformation?: string | undefined;
        installDate?: Date | undefined;
        parameters?: {
            label?: string | undefined;
            units?: string | undefined;
            intValue?: number | undefined;
            floatValue?: number | undefined;
            timestamp?: Date | undefined;
            duration?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            stringValue?: string | undefined;
            boolValue?: boolean | undefined;
            uintValue?: number | undefined;
            notes?: string | undefined;
        }[] | undefined;
    } & {
        version?: ({
            majorVersion?: number | undefined;
            minorVersion?: number | undefined;
            patchLevel?: number | undefined;
        } & {
            majorVersion?: number | undefined;
            minorVersion?: number | undefined;
            patchLevel?: number | undefined;
        } & { [K in Exclude<keyof I["version"], keyof SoftwareVersion>]: never; }) | undefined;
        name?: string | undefined;
        type?: string | undefined;
        changesetDate?: Date | undefined;
        changeset?: string | undefined;
        apiVersion?: string | undefined;
        buildInformation?: string | undefined;
        installDate?: Date | undefined;
        parameters?: ({
            label?: string | undefined;
            units?: string | undefined;
            intValue?: number | undefined;
            floatValue?: number | undefined;
            timestamp?: Date | undefined;
            duration?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            stringValue?: string | undefined;
            boolValue?: boolean | undefined;
            uintValue?: number | undefined;
            notes?: string | undefined;
        }[] & ({
            label?: string | undefined;
            units?: string | undefined;
            intValue?: number | undefined;
            floatValue?: number | undefined;
            timestamp?: Date | undefined;
            duration?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            stringValue?: string | undefined;
            boolValue?: boolean | undefined;
            uintValue?: number | undefined;
            notes?: string | undefined;
        } & {
            label?: string | undefined;
            units?: string | undefined;
            intValue?: number | undefined;
            floatValue?: number | undefined;
            timestamp?: Date | undefined;
            duration?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & { [K_1 in Exclude<keyof I["parameters"][number]["duration"], keyof import("../../google/protobuf/duration").Duration>]: never; }) | undefined;
            stringValue?: string | undefined;
            boolValue?: boolean | undefined;
            uintValue?: number | undefined;
            notes?: string | undefined;
        } & { [K_2 in Exclude<keyof I["parameters"][number], keyof Parameter>]: never; })[] & { [K_3 in Exclude<keyof I["parameters"], keyof {
            label?: string | undefined;
            units?: string | undefined;
            intValue?: number | undefined;
            floatValue?: number | undefined;
            timestamp?: Date | undefined;
            duration?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            stringValue?: string | undefined;
            boolValue?: boolean | undefined;
            uintValue?: number | undefined;
            notes?: string | undefined;
        }[]>]: never; }) | undefined;
    } & { [K_4 in Exclude<keyof I, keyof RobotSoftwareRelease>]: never; }>(object: I): RobotSoftwareRelease;
};
export declare const RobotIdRequest: {
    encode(message: RobotIdRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RobotIdRequest;
    fromJSON(object: any): RobotIdRequest;
    toJSON(message: RobotIdRequest): unknown;
    fromPartial<I extends {
        header?: {
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } | undefined;
    } & {
        header?: ({
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } & {
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } & { [K in Exclude<keyof I["header"], keyof RequestHeader>]: never; }) | undefined;
    } & { [K_1 in Exclude<keyof I, "header">]: never; }>(object: I): RobotIdRequest;
};
export declare const RobotIdResponse: {
    encode(message: RobotIdResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RobotIdResponse;
    fromJSON(object: any): RobotIdResponse;
    toJSON(message: RobotIdResponse): unknown;
    fromPartial<I extends {
        header?: {
            requestHeader?: {
                requestTimestamp?: Date | undefined;
                clientName?: string | undefined;
                disableRpcLogging?: boolean | undefined;
            } | undefined;
            requestReceivedTimestamp?: Date | undefined;
            responseTimestamp?: Date | undefined;
            error?: {
                code?: import("./header").CommonError_Code | undefined;
                message?: string | undefined;
                data?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
            request?: {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } | undefined;
        } | undefined;
        robotId?: {
            serialNumber?: string | undefined;
            species?: string | undefined;
            version?: string | undefined;
            softwareRelease?: {
                version?: {
                    majorVersion?: number | undefined;
                    minorVersion?: number | undefined;
                    patchLevel?: number | undefined;
                } | undefined;
                name?: string | undefined;
                type?: string | undefined;
                changesetDate?: Date | undefined;
                changeset?: string | undefined;
                apiVersion?: string | undefined;
                buildInformation?: string | undefined;
                installDate?: Date | undefined;
                parameters?: {
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                }[] | undefined;
            } | undefined;
            nickname?: string | undefined;
            computerSerialNumber?: string | undefined;
        } | undefined;
    } & {
        header?: ({
            requestHeader?: {
                requestTimestamp?: Date | undefined;
                clientName?: string | undefined;
                disableRpcLogging?: boolean | undefined;
            } | undefined;
            requestReceivedTimestamp?: Date | undefined;
            responseTimestamp?: Date | undefined;
            error?: {
                code?: import("./header").CommonError_Code | undefined;
                message?: string | undefined;
                data?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
            request?: {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } | undefined;
        } & {
            requestHeader?: ({
                requestTimestamp?: Date | undefined;
                clientName?: string | undefined;
                disableRpcLogging?: boolean | undefined;
            } & {
                requestTimestamp?: Date | undefined;
                clientName?: string | undefined;
                disableRpcLogging?: boolean | undefined;
            } & { [K in Exclude<keyof I["header"]["requestHeader"], keyof RequestHeader>]: never; }) | undefined;
            requestReceivedTimestamp?: Date | undefined;
            responseTimestamp?: Date | undefined;
            error?: ({
                code?: import("./header").CommonError_Code | undefined;
                message?: string | undefined;
                data?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } & {
                code?: import("./header").CommonError_Code | undefined;
                message?: string | undefined;
                data?: ({
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } & {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } & { [K_1 in Exclude<keyof I["header"]["error"]["data"], keyof import("../../google/protobuf/any").Any>]: never; }) | undefined;
            } & { [K_2 in Exclude<keyof I["header"]["error"], keyof import("./header").CommonError>]: never; }) | undefined;
            request?: ({
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } & { [K_3 in Exclude<keyof I["header"]["request"], keyof import("../../google/protobuf/any").Any>]: never; }) | undefined;
        } & { [K_4 in Exclude<keyof I["header"], keyof ResponseHeader>]: never; }) | undefined;
        robotId?: ({
            serialNumber?: string | undefined;
            species?: string | undefined;
            version?: string | undefined;
            softwareRelease?: {
                version?: {
                    majorVersion?: number | undefined;
                    minorVersion?: number | undefined;
                    patchLevel?: number | undefined;
                } | undefined;
                name?: string | undefined;
                type?: string | undefined;
                changesetDate?: Date | undefined;
                changeset?: string | undefined;
                apiVersion?: string | undefined;
                buildInformation?: string | undefined;
                installDate?: Date | undefined;
                parameters?: {
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                }[] | undefined;
            } | undefined;
            nickname?: string | undefined;
            computerSerialNumber?: string | undefined;
        } & {
            serialNumber?: string | undefined;
            species?: string | undefined;
            version?: string | undefined;
            softwareRelease?: ({
                version?: {
                    majorVersion?: number | undefined;
                    minorVersion?: number | undefined;
                    patchLevel?: number | undefined;
                } | undefined;
                name?: string | undefined;
                type?: string | undefined;
                changesetDate?: Date | undefined;
                changeset?: string | undefined;
                apiVersion?: string | undefined;
                buildInformation?: string | undefined;
                installDate?: Date | undefined;
                parameters?: {
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                }[] | undefined;
            } & {
                version?: ({
                    majorVersion?: number | undefined;
                    minorVersion?: number | undefined;
                    patchLevel?: number | undefined;
                } & {
                    majorVersion?: number | undefined;
                    minorVersion?: number | undefined;
                    patchLevel?: number | undefined;
                } & { [K_5 in Exclude<keyof I["robotId"]["softwareRelease"]["version"], keyof SoftwareVersion>]: never; }) | undefined;
                name?: string | undefined;
                type?: string | undefined;
                changesetDate?: Date | undefined;
                changeset?: string | undefined;
                apiVersion?: string | undefined;
                buildInformation?: string | undefined;
                installDate?: Date | undefined;
                parameters?: ({
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                }[] & ({
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                } & {
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: ({
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } & { [K_6 in Exclude<keyof I["robotId"]["softwareRelease"]["parameters"][number]["duration"], keyof import("../../google/protobuf/duration").Duration>]: never; }) | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                } & { [K_7 in Exclude<keyof I["robotId"]["softwareRelease"]["parameters"][number], keyof Parameter>]: never; })[] & { [K_8 in Exclude<keyof I["robotId"]["softwareRelease"]["parameters"], keyof {
                    label?: string | undefined;
                    units?: string | undefined;
                    intValue?: number | undefined;
                    floatValue?: number | undefined;
                    timestamp?: Date | undefined;
                    duration?: {
                        seconds?: number | undefined;
                        nanos?: number | undefined;
                    } | undefined;
                    stringValue?: string | undefined;
                    boolValue?: boolean | undefined;
                    uintValue?: number | undefined;
                    notes?: string | undefined;
                }[]>]: never; }) | undefined;
            } & { [K_9 in Exclude<keyof I["robotId"]["softwareRelease"], keyof RobotSoftwareRelease>]: never; }) | undefined;
            nickname?: string | undefined;
            computerSerialNumber?: string | undefined;
        } & { [K_10 in Exclude<keyof I["robotId"], keyof RobotId>]: never; }) | undefined;
    } & { [K_11 in Exclude<keyof I, keyof RobotIdResponse>]: never; }>(object: I): RobotIdResponse;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
//# sourceMappingURL=robot_id.d.ts.map