import { RequestHeader, ResponseHeader } from "./header";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api";
export interface LicenseInfo {
    /** The status of the uploaded license for this robot. */
    status: LicenseInfo_Status;
    /** Unique license number. */
    id: string;
    /** Serial number of the robot this license covers. */
    robotSerial: string;
    /** The license is not valid for use for any dates before this timestamp. */
    notValidBefore: Date | undefined;
    /** The license is not valid for use for any dates after this timestamp. */
    notValidAfter: Date | undefined;
    /** / Human readable list of licensed features included for this license. */
    licensedFeatures: string[];
}
export declare enum LicenseInfo_Status {
    STATUS_UNKNOWN = 0,
    STATUS_VALID = 1,
    STATUS_EXPIRED = 2,
    STATUS_NOT_YET_VALID = 3,
    STATUS_MALFORMED = 4,
    STATUS_SERIAL_MISMATCH = 5,
    STATUS_NO_LICENSE = 6,
    UNRECOGNIZED = -1
}
export declare function licenseInfo_StatusFromJSON(object: any): LicenseInfo_Status;
export declare function licenseInfo_StatusToJSON(object: LicenseInfo_Status): string;
/**  */
export interface GetLicenseInfoRequest {
    /** Common request header. */
    header: RequestHeader | undefined;
}
export interface GetLicenseInfoResponse {
    /** Common response header */
    header: ResponseHeader | undefined;
    /** The details about the current license that is uploaded to the robot. */
    license: LicenseInfo | undefined;
}
export interface GetFeatureEnabledRequest {
    /** Common request header. */
    header: RequestHeader | undefined;
    /**
     * Check if specific named features are enabled on the robot under the currently
     * loaded license.
     */
    featureCodes: string[];
}
export interface GetFeatureEnabledResponse {
    /** Common response header. */
    header: ResponseHeader | undefined;
    /**
     * The resulting map showing the feature name (as the map key) and a boolean indicating
     * if the feature is enabled with this license (as the map value).
     */
    featureEnabled: {
        [key: string]: boolean;
    };
}
export interface GetFeatureEnabledResponse_FeatureEnabledEntry {
    key: string;
    value: boolean;
}
export declare const LicenseInfo: {
    encode(message: LicenseInfo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): LicenseInfo;
    fromJSON(object: any): LicenseInfo;
    toJSON(message: LicenseInfo): unknown;
    fromPartial<I extends {
        status?: LicenseInfo_Status | undefined;
        id?: string | undefined;
        robotSerial?: string | undefined;
        notValidBefore?: Date | undefined;
        notValidAfter?: Date | undefined;
        licensedFeatures?: string[] | undefined;
    } & {
        status?: LicenseInfo_Status | undefined;
        id?: string | undefined;
        robotSerial?: string | undefined;
        notValidBefore?: Date | undefined;
        notValidAfter?: Date | undefined;
        licensedFeatures?: (string[] & string[] & { [K in Exclude<keyof I["licensedFeatures"], keyof string[]>]: never; }) | undefined;
    } & { [K_1 in Exclude<keyof I, keyof LicenseInfo>]: never; }>(object: I): LicenseInfo;
};
export declare const GetLicenseInfoRequest: {
    encode(message: GetLicenseInfoRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetLicenseInfoRequest;
    fromJSON(object: any): GetLicenseInfoRequest;
    toJSON(message: GetLicenseInfoRequest): 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): GetLicenseInfoRequest;
};
export declare const GetLicenseInfoResponse: {
    encode(message: GetLicenseInfoResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetLicenseInfoResponse;
    fromJSON(object: any): GetLicenseInfoResponse;
    toJSON(message: GetLicenseInfoResponse): 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;
        license?: {
            status?: LicenseInfo_Status | undefined;
            id?: string | undefined;
            robotSerial?: string | undefined;
            notValidBefore?: Date | undefined;
            notValidAfter?: Date | undefined;
            licensedFeatures?: 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;
        license?: ({
            status?: LicenseInfo_Status | undefined;
            id?: string | undefined;
            robotSerial?: string | undefined;
            notValidBefore?: Date | undefined;
            notValidAfter?: Date | undefined;
            licensedFeatures?: string[] | undefined;
        } & {
            status?: LicenseInfo_Status | undefined;
            id?: string | undefined;
            robotSerial?: string | undefined;
            notValidBefore?: Date | undefined;
            notValidAfter?: Date | undefined;
            licensedFeatures?: (string[] & string[] & { [K_5 in Exclude<keyof I["license"]["licensedFeatures"], keyof string[]>]: never; }) | undefined;
        } & { [K_6 in Exclude<keyof I["license"], keyof LicenseInfo>]: never; }) | undefined;
    } & { [K_7 in Exclude<keyof I, keyof GetLicenseInfoResponse>]: never; }>(object: I): GetLicenseInfoResponse;
};
export declare const GetFeatureEnabledRequest: {
    encode(message: GetFeatureEnabledRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetFeatureEnabledRequest;
    fromJSON(object: any): GetFeatureEnabledRequest;
    toJSON(message: GetFeatureEnabledRequest): unknown;
    fromPartial<I extends {
        header?: {
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } | undefined;
        featureCodes?: string[] | 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;
        featureCodes?: (string[] & string[] & { [K_1 in Exclude<keyof I["featureCodes"], keyof string[]>]: never; }) | undefined;
    } & { [K_2 in Exclude<keyof I, keyof GetFeatureEnabledRequest>]: never; }>(object: I): GetFeatureEnabledRequest;
};
export declare const GetFeatureEnabledResponse: {
    encode(message: GetFeatureEnabledResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetFeatureEnabledResponse;
    fromJSON(object: any): GetFeatureEnabledResponse;
    toJSON(message: GetFeatureEnabledResponse): 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;
        featureEnabled?: {
            [x: string]: boolean | 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;
        featureEnabled?: ({
            [x: string]: boolean | undefined;
        } & {
            [x: string]: boolean | undefined;
        } & { [K_5 in Exclude<keyof I["featureEnabled"], string | number>]: never; }) | undefined;
    } & { [K_6 in Exclude<keyof I, keyof GetFeatureEnabledResponse>]: never; }>(object: I): GetFeatureEnabledResponse;
};
export declare const GetFeatureEnabledResponse_FeatureEnabledEntry: {
    encode(message: GetFeatureEnabledResponse_FeatureEnabledEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetFeatureEnabledResponse_FeatureEnabledEntry;
    fromJSON(object: any): GetFeatureEnabledResponse_FeatureEnabledEntry;
    toJSON(message: GetFeatureEnabledResponse_FeatureEnabledEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: boolean | undefined;
    } & {
        key?: string | undefined;
        value?: boolean | undefined;
    } & { [K in Exclude<keyof I, keyof GetFeatureEnabledResponse_FeatureEnabledEntry>]: never; }>(object: I): GetFeatureEnabledResponse_FeatureEnabledEntry;
};
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=license.d.ts.map