import { Any } from "../../../google/protobuf/any";
import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "bosdyn.api.mission";
/** Results from executing / ticking / running a single node. */
export declare enum Result {
    /** RESULT_UNKNOWN - Invalid, should not be used. */
    RESULT_UNKNOWN = 0,
    /** RESULT_FAILURE - The node completed running, but failed. */
    RESULT_FAILURE = 1,
    /** RESULT_RUNNING - The node is still in process and has not completed. */
    RESULT_RUNNING = 2,
    /** RESULT_SUCCESS - The node completed, and succeeded. */
    RESULT_SUCCESS = 3,
    /** RESULT_ERROR - The node encountered an operational error while trying to execute. */
    RESULT_ERROR = 4,
    UNRECOGNIZED = -1
}
export declare function resultFromJSON(object: any): Result;
export declare function resultToJSON(object: Result): string;
/** Key/Value pair, used in other messages. */
export interface KeyValue {
    key: string;
    value: Value | undefined;
}
/** A value of a run-time or compile-time variable. */
export interface Value {
    /** A constant value. */
    constant: ConstantValue | undefined;
    /** Look up a variable provided at run-time. */
    runtimeVar: VariableDeclaration | undefined;
    /** Look up a Node Parameter. */
    parameter: VariableDeclaration | undefined;
}
/** Declaration of a run-time or compile-time variable. */
export interface VariableDeclaration {
    /** Name of the variable, to be used as the key in KeyValue pairs. */
    name: string;
    /** Type that this variable is expected to have. Used to verify assignments and comparisons. */
    type: VariableDeclaration_Type;
}
/** Supported types for blackboard or parameter values. */
export declare enum VariableDeclaration_Type {
    TYPE_UNKNOWN = 0,
    TYPE_FLOAT = 1,
    TYPE_STRING = 2,
    TYPE_INT = 3,
    TYPE_BOOL = 4,
    TYPE_MESSAGE = 5,
    UNRECOGNIZED = -1
}
export declare function variableDeclaration_TypeFromJSON(object: any): VariableDeclaration_Type;
export declare function variableDeclaration_TypeToJSON(object: VariableDeclaration_Type): string;
/** A constant value. Corresponds to the VariableDeclaration Type enum. */
export interface ConstantValue {
    floatValue: number | undefined;
    stringValue: string | undefined;
    intValue: number | undefined;
    boolValue: boolean | undefined;
    msgValue: Any | undefined;
}
/** Data a user can associate with a node. */
export interface UserData {
    /**
     * Identifier. Enables matching the Node uploaded to the MissionService with the NodeInfo
     * downloaded from the MissionService.
     */
    id: string;
    /** Arbitrary data. We recommend keeping it small, to avoid bloating the size of the mission. */
    bytestring: Uint8Array;
}
export declare const KeyValue: {
    encode(message: KeyValue, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeyValue;
    fromJSON(object: any): KeyValue;
    toJSON(message: KeyValue): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: {
            constant?: {
                floatValue?: number | undefined;
                stringValue?: string | undefined;
                intValue?: number | undefined;
                boolValue?: boolean | undefined;
                msgValue?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
            runtimeVar?: {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } | undefined;
            parameter?: {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } | undefined;
        } | undefined;
    } & {
        key?: string | undefined;
        value?: ({
            constant?: {
                floatValue?: number | undefined;
                stringValue?: string | undefined;
                intValue?: number | undefined;
                boolValue?: boolean | undefined;
                msgValue?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
            runtimeVar?: {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } | undefined;
            parameter?: {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } | undefined;
        } & {
            constant?: ({
                floatValue?: number | undefined;
                stringValue?: string | undefined;
                intValue?: number | undefined;
                boolValue?: boolean | undefined;
                msgValue?: {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } | undefined;
            } & {
                floatValue?: number | undefined;
                stringValue?: string | undefined;
                intValue?: number | undefined;
                boolValue?: boolean | undefined;
                msgValue?: ({
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } & {
                    typeUrl?: string | undefined;
                    value?: Uint8Array | undefined;
                } & { [K in Exclude<keyof I["value"]["constant"]["msgValue"], keyof Any>]: never; }) | undefined;
            } & { [K_1 in Exclude<keyof I["value"]["constant"], keyof ConstantValue>]: never; }) | undefined;
            runtimeVar?: ({
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } & {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } & { [K_2 in Exclude<keyof I["value"]["runtimeVar"], keyof VariableDeclaration>]: never; }) | undefined;
            parameter?: ({
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } & {
                name?: string | undefined;
                type?: VariableDeclaration_Type | undefined;
            } & { [K_3 in Exclude<keyof I["value"]["parameter"], keyof VariableDeclaration>]: never; }) | undefined;
        } & { [K_4 in Exclude<keyof I["value"], keyof Value>]: never; }) | undefined;
    } & { [K_5 in Exclude<keyof I, keyof KeyValue>]: never; }>(object: I): KeyValue;
};
export declare const Value: {
    encode(message: Value, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Value;
    fromJSON(object: any): Value;
    toJSON(message: Value): unknown;
    fromPartial<I extends {
        constant?: {
            floatValue?: number | undefined;
            stringValue?: string | undefined;
            intValue?: number | undefined;
            boolValue?: boolean | undefined;
            msgValue?: {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } | undefined;
        } | undefined;
        runtimeVar?: {
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } | undefined;
        parameter?: {
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } | undefined;
    } & {
        constant?: ({
            floatValue?: number | undefined;
            stringValue?: string | undefined;
            intValue?: number | undefined;
            boolValue?: boolean | undefined;
            msgValue?: {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } | undefined;
        } & {
            floatValue?: number | undefined;
            stringValue?: string | undefined;
            intValue?: number | undefined;
            boolValue?: boolean | undefined;
            msgValue?: ({
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Uint8Array | undefined;
            } & { [K in Exclude<keyof I["constant"]["msgValue"], keyof Any>]: never; }) | undefined;
        } & { [K_1 in Exclude<keyof I["constant"], keyof ConstantValue>]: never; }) | undefined;
        runtimeVar?: ({
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } & {
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } & { [K_2 in Exclude<keyof I["runtimeVar"], keyof VariableDeclaration>]: never; }) | undefined;
        parameter?: ({
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } & {
            name?: string | undefined;
            type?: VariableDeclaration_Type | undefined;
        } & { [K_3 in Exclude<keyof I["parameter"], keyof VariableDeclaration>]: never; }) | undefined;
    } & { [K_4 in Exclude<keyof I, keyof Value>]: never; }>(object: I): Value;
};
export declare const VariableDeclaration: {
    encode(message: VariableDeclaration, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): VariableDeclaration;
    fromJSON(object: any): VariableDeclaration;
    toJSON(message: VariableDeclaration): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        type?: VariableDeclaration_Type | undefined;
    } & {
        name?: string | undefined;
        type?: VariableDeclaration_Type | undefined;
    } & { [K in Exclude<keyof I, keyof VariableDeclaration>]: never; }>(object: I): VariableDeclaration;
};
export declare const ConstantValue: {
    encode(message: ConstantValue, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ConstantValue;
    fromJSON(object: any): ConstantValue;
    toJSON(message: ConstantValue): unknown;
    fromPartial<I extends {
        floatValue?: number | undefined;
        stringValue?: string | undefined;
        intValue?: number | undefined;
        boolValue?: boolean | undefined;
        msgValue?: {
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        } | undefined;
    } & {
        floatValue?: number | undefined;
        stringValue?: string | undefined;
        intValue?: number | undefined;
        boolValue?: boolean | undefined;
        msgValue?: ({
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        } & {
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        } & { [K in Exclude<keyof I["msgValue"], keyof Any>]: never; }) | undefined;
    } & { [K_1 in Exclude<keyof I, keyof ConstantValue>]: never; }>(object: I): ConstantValue;
};
export declare const UserData: {
    encode(message: UserData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UserData;
    fromJSON(object: any): UserData;
    toJSON(message: UserData): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        bytestring?: Uint8Array | undefined;
    } & {
        id?: string | undefined;
        bytestring?: Uint8Array | undefined;
    } & { [K in Exclude<keyof I, keyof UserData>]: never; }>(object: I): UserData;
};
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=util.d.ts.map