import { RequestHeader, ResponseHeader } from "../header";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api.spot_cam";
/** Parameters for how the video stream should be processed and compressed. */
export interface StreamParams {
    /** The compression level in target BPS */
    targetbitrate: number | undefined;
    /**
     * How often should the entire feed be refreshed? (in frames)
     * Note: the feed is refreshed on a macroblock level; there are no full I-frames
     */
    refreshinterval: number | undefined;
    /** How often should an IDR message get sent? (in frames) */
    idrinterval: number | undefined;
    /** Optional setting of automatic white balancing mode. */
    awb: StreamParams_AwbMode | undefined;
}
/** Options for automatic white balancing mode. */
export declare enum StreamParams_AwbModeEnum {
    OFF = 0,
    AUTO = 1,
    INCANDESCENT = 2,
    FLUORESCENT = 3,
    WARM_FLUORESCENT = 4,
    DAYLIGHT = 5,
    CLOUDY = 6,
    TWILIGHT = 7,
    SHADE = 8,
    /** @deprecated */
    DARK = 9,
    UNRECOGNIZED = -1
}
export declare function streamParams_AwbModeEnumFromJSON(object: any): StreamParams_AwbModeEnum;
export declare function streamParams_AwbModeEnumToJSON(object: StreamParams_AwbModeEnum): string;
/** Wrapper for AwbModeEnum to allow it to be optionally set. */
export interface StreamParams_AwbMode {
    awb: StreamParams_AwbModeEnum;
}
/** Request the current video stream parameters. */
export interface GetStreamParamsRequest {
    /** Common request header. */
    header: RequestHeader | undefined;
}
/** Provides the current video stream parameters. */
export interface GetStreamParamsResponse {
    /** Common response header. */
    header: ResponseHeader | undefined;
    /** Current video stream parameters. */
    params: StreamParams | undefined;
}
/** Modify the video stream parameters. */
export interface SetStreamParamsRequest {
    /** Common request header. */
    header: RequestHeader | undefined;
    /** Set only the fields that should be modified. */
    params: StreamParams | undefined;
}
/** Result of setting video stream parameters. */
export interface SetStreamParamsResponse {
    /** Common response header. */
    header: ResponseHeader | undefined;
    /** Applied video stream parameters. */
    params: StreamParams | undefined;
}
export interface EnableCongestionControlRequest {
    header: RequestHeader | undefined;
    /** A boolean 'true' enables receiver congestion control while 'false' disables it */
    enableCongestionControl: boolean;
}
export interface EnableCongestionControlResponse {
    header: ResponseHeader | undefined;
}
export declare const StreamParams: {
    encode(message: StreamParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StreamParams;
    fromJSON(object: any): StreamParams;
    toJSON(message: StreamParams): unknown;
    fromPartial<I extends {
        targetbitrate?: number | undefined;
        refreshinterval?: number | undefined;
        idrinterval?: number | undefined;
        awb?: {
            awb?: StreamParams_AwbModeEnum | undefined;
        } | undefined;
    } & {
        targetbitrate?: number | undefined;
        refreshinterval?: number | undefined;
        idrinterval?: number | undefined;
        awb?: ({
            awb?: StreamParams_AwbModeEnum | undefined;
        } & {
            awb?: StreamParams_AwbModeEnum | undefined;
        } & { [K in Exclude<keyof I["awb"], "awb">]: never; }) | undefined;
    } & { [K_1 in Exclude<keyof I, keyof StreamParams>]: never; }>(object: I): StreamParams;
};
export declare const StreamParams_AwbMode: {
    encode(message: StreamParams_AwbMode, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StreamParams_AwbMode;
    fromJSON(object: any): StreamParams_AwbMode;
    toJSON(message: StreamParams_AwbMode): unknown;
    fromPartial<I extends {
        awb?: StreamParams_AwbModeEnum | undefined;
    } & {
        awb?: StreamParams_AwbModeEnum | undefined;
    } & { [K in Exclude<keyof I, "awb">]: never; }>(object: I): StreamParams_AwbMode;
};
export declare const GetStreamParamsRequest: {
    encode(message: GetStreamParamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStreamParamsRequest;
    fromJSON(object: any): GetStreamParamsRequest;
    toJSON(message: GetStreamParamsRequest): 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): GetStreamParamsRequest;
};
export declare const GetStreamParamsResponse: {
    encode(message: GetStreamParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStreamParamsResponse;
    fromJSON(object: any): GetStreamParamsResponse;
    toJSON(message: GetStreamParamsResponse): 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;
        params?: {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | 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;
        params?: ({
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | undefined;
        } & {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: ({
                awb?: StreamParams_AwbModeEnum | undefined;
            } & {
                awb?: StreamParams_AwbModeEnum | undefined;
            } & { [K_5 in Exclude<keyof I["params"]["awb"], "awb">]: never; }) | undefined;
        } & { [K_6 in Exclude<keyof I["params"], keyof StreamParams>]: never; }) | undefined;
    } & { [K_7 in Exclude<keyof I, keyof GetStreamParamsResponse>]: never; }>(object: I): GetStreamParamsResponse;
};
export declare const SetStreamParamsRequest: {
    encode(message: SetStreamParamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetStreamParamsRequest;
    fromJSON(object: any): SetStreamParamsRequest;
    toJSON(message: SetStreamParamsRequest): unknown;
    fromPartial<I extends {
        header?: {
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } | undefined;
        params?: {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | 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;
        params?: ({
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | undefined;
        } & {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: ({
                awb?: StreamParams_AwbModeEnum | undefined;
            } & {
                awb?: StreamParams_AwbModeEnum | undefined;
            } & { [K_1 in Exclude<keyof I["params"]["awb"], "awb">]: never; }) | undefined;
        } & { [K_2 in Exclude<keyof I["params"], keyof StreamParams>]: never; }) | undefined;
    } & { [K_3 in Exclude<keyof I, keyof SetStreamParamsRequest>]: never; }>(object: I): SetStreamParamsRequest;
};
export declare const SetStreamParamsResponse: {
    encode(message: SetStreamParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetStreamParamsResponse;
    fromJSON(object: any): SetStreamParamsResponse;
    toJSON(message: SetStreamParamsResponse): 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;
        params?: {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | 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;
        params?: ({
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: {
                awb?: StreamParams_AwbModeEnum | undefined;
            } | undefined;
        } & {
            targetbitrate?: number | undefined;
            refreshinterval?: number | undefined;
            idrinterval?: number | undefined;
            awb?: ({
                awb?: StreamParams_AwbModeEnum | undefined;
            } & {
                awb?: StreamParams_AwbModeEnum | undefined;
            } & { [K_5 in Exclude<keyof I["params"]["awb"], "awb">]: never; }) | undefined;
        } & { [K_6 in Exclude<keyof I["params"], keyof StreamParams>]: never; }) | undefined;
    } & { [K_7 in Exclude<keyof I, keyof SetStreamParamsResponse>]: never; }>(object: I): SetStreamParamsResponse;
};
export declare const EnableCongestionControlRequest: {
    encode(message: EnableCongestionControlRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EnableCongestionControlRequest;
    fromJSON(object: any): EnableCongestionControlRequest;
    toJSON(message: EnableCongestionControlRequest): unknown;
    fromPartial<I extends {
        header?: {
            requestTimestamp?: Date | undefined;
            clientName?: string | undefined;
            disableRpcLogging?: boolean | undefined;
        } | undefined;
        enableCongestionControl?: boolean | 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;
        enableCongestionControl?: boolean | undefined;
    } & { [K_1 in Exclude<keyof I, keyof EnableCongestionControlRequest>]: never; }>(object: I): EnableCongestionControlRequest;
};
export declare const EnableCongestionControlResponse: {
    encode(message: EnableCongestionControlResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EnableCongestionControlResponse;
    fromJSON(object: any): EnableCongestionControlResponse;
    toJSON(message: EnableCongestionControlResponse): 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;
    } & {
        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;
    } & { [K_5 in Exclude<keyof I, "header">]: never; }>(object: I): EnableCongestionControlResponse;
};
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=streamquality.d.ts.map